Function at 0x4021f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4a3588
push eax
mov dword fs:[0], esp
sub esp, 0x68
push ebx
mov ebx, dword [esp + 0x7c]
push ebp
push esi
mov esi, dword [ebx + 8]
push edi
mov al, byte [esi + 6]
shr al, 6
test al, 1
jne 0x402236
xor ebp, ebp
push ebp
push 2
push 0x4b1624
push 0x4c9434
call fcn.00441210
add esp, 0x10
jmp 0x402238
xor ebp, ebp
lea eax, [esi + 0x10]
lea ecx, [esp + 0x5c]
push eax
call fcn.0040f9a0
mov eax, 0x7fff
mov dword [esp + 0x40], ebp
mov word [esp + 0x18], ax
mov word [esp + 0x1a], ax
mov eax, 0xffff8001
mov word [esp + 0x1c], ax
mov word [esp + 0x1e], ax
mov dword [esp + 0x80], ebp
mov dword [esp + 0x28], ebp
mov word [esp + 0x2e], bp
mov word [esp + 0x30], bp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov edi, dword [0x4caeb0]
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [ebx + 4]
mov byte [esp + 0x84], 1
call fcn.0043d1f0
mov esi, eax
mov ecx, esi
call fcn.00402110
test al, al
jne 0x4022be
mov ax, word [esi + 6]
mov si, word [esi + 2]
sub eax, esi
mov ecx, eax
jmp 0x4022c0
xor ecx, ecx
mov eax, 0x55555556
imul edi
mov eax, edx
shr eax, 0x1f
movsx ecx, cx
add edx, eax
cmp ecx, edx
setg al
test al, al
je 0x40232d
mov dl, byte [esp + 0x2e]
mov byte [esp + 0x80], 4
shr dl, 6
test dl, 1
je 0x40230a
push 0x434d80
lea ecx, [esp + 0x3c]
call fcn.0043fe20
push 0x434d80
lea ecx, [esp + 0x40]
call fcn.0043fe20
push 0x43b350
lea ecx, [esp + 0x40]
mov byte [esp + 0x84], 3
call fcn.0043fe20
mov byte [esp + 0x80], 2
jmp 0x4023ea
mov al, byte [0x4c92f8]
test al, al
je 0x40233d
mov byte [0x4c9ff0], 0
mov ax, word [0x4c96d0]
push eax
push ebx
call fcn.00401930
add esp, 8
test al, al
je 0x402367
lea esi, [ebx + 0x44]
mov ecx, esi
call fcn.00439210
mov cx, word [esi + 4]
sub cx, ax
cmp cx, bp
je 0x40238a
mov al, byte [0x4c9338]
test al, al
jne 0x40238a
mov al, byte [0x4c9398]
test al, al
je 0x4026b6
lea ecx, [ebx + 0x44]
call fcn.004394a0
jmp 0x4026b6
mov al, byte [0x4c9398]
test al, al
je 0x402411
mov al, byte [0x4c9338]
test al, al
jne 0x402411
mov cl, byte [esp + 0x2e]
mov byte [esp + 0x80], 7
shr cl, 6
test cl, 1
je 0x4023cc
push 0x434d80
lea ecx, [esp + 0x3c]
call fcn.0043fe20
push 0x434d80
lea ecx, [esp + 0x40]
call fcn.0043fe20
push 0x43b350
lea ecx, [esp + 0x40]
mov byte [esp + 0x84], 6
call fcn.0043fe20
mov byte [esp + 0x80], 5
push 0x43b350
lea ecx, [esp + 0x3c]
call fcn.0043fe20
mov eax, dword [esp + 0x34]
mov byte [esp + 0x80], 0
cmp eax, ebp
je 0x40272b
jmp 0x402722
mov edx, dword [ebx + 8]
lea ecx, [esp + 0x28]
push edx
call fcn.0043f080
lea eax, [ebx + 0x10]
lea ecx, [esp + 0x28]
push eax
call fcn.0043e990
lea ecx, [esp + 0x18]
lea edx, [esp + 0x10]
push ecx
lea eax, [esp + 0x18]
push edx
push eax
lea ecx, [esp + 0x34]
push 0x4caea0
push ecx
call fcn.00409b40
mov eax, dword [esp + 0x28]
add esp, 0x14
mov dword [esp + 0x40], eax
mov edx, dword [eax]
mov dword [esp + 0x44], edx
mov eax, dword [eax]
cmp eax, ebp
je 0x402464
mov eax, dword [eax]
jmp 0x402466
xor eax, eax
cmp eax, ebp
mov dword [esp + 0x48], eax
je 0x402472
mov eax, dword [eax]
jmp 0x402474
xor eax, eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x54], ebp
mov byte [esp + 0x58], 0
mov byte [esp + 0x50], 0
mov byte [esp + 0x51], 0
call fcn.004020e0
lea ecx, [esp + 0x5c]
call fcn.004020e0
mov eax, dword [ebx + 0x38]
xor edi, edi
mov dword [esp + 0x88], edi
mov ecx, dword [eax]
cmp byte [ecx], 0
je 0x402674
mov al, byte [0x4c9378]
test al, al
je 0x4025ba
mov eax, dword [0x4c9368]
cmp eax, ebp
je 0x40250c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.00442a90
mov edi, dword [0x4c9368]
mov ebp, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x88]
jmp 0x402520
push 1
call fcn.00442a90
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x402520
mov byte [ebp], 0
mov eax, dword [ebx + 0x38]
movsx esi, di
mov ecx, dword [eax]
test ebp, ebp
mov al, byte [ecx + esi]
je 0x40254f
test al, al
je 0x402545
movsx edx, al
push edx
push ebp
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
je 0x40254f
mov byte [esp + 0x88], 1
jmp 0x402557
mov byte [esp + 0x88], 0
test ebp, ebp
je 0x402564
push ebp
call fcn.00442aa0
add esp, 4
mov al, byte [esp + 0x88]
test al, al
je 0x4025b8
mov al, byte [0x4c9338]
test al, al
je 0x402646
cmp di, word [ebx + 0x48]
jl 0x4025a5
push 0xf0
push 0x4b1654
push 0x4b1640
push 0
push 0x4b1634
push 0x4c9470
call fcn.00441210
add esp, 0x18
mov eax, dword [ebx + 0x44]
lea ecx, [eax + esi*4]
call fcn.00438a60
test al, al
jne 0x402646
xor ebp, ebp
mov al, byte [0x4c93b8]
test al, al
je 0x4025df
mov ecx, dword [ebx + 0x38]
mov eax, dword [ecx]
movsx ecx, di
push ecx
push eax
movsx edx, byte [eax + ecx]
push edx
push 0x4b15f0
call fcn.00443600
add esp, 0x10
mov eax, dword [ebx + 0x38]
movsx esi, di
mov ecx, dword [eax]
mov eax, dword [esp + 0x2e]
shr eax, 0xc
mov dl, byte [ecx + esi]
mov ecx, dword [esp + 0x1c]
and al, 1
push edx
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x54]
push edx
push eax
push ecx
call fcn.004047c0
add esp, 0x18
cmp eax, ebp
jne 0x40262b
mov edx, dword [ebx + 0x38]
push esi
mov eax, dword [edx]
push eax
push 0x4b15c4
call fcn.00443600
add esp, 0xc
jmp 0x402648
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
push ecx
push edx
push eax
call fcn.00402740
add esp, 0xc
jmp 0x402648
xor ebp, ebp
inc edi
lea ecx, [esp + 0x40]
mov dword [esp + 0x88], edi
call fcn.004403e0
lea ecx, [esp + 0x5c]
call fcn.004403e0
mov eax, dword [ebx + 0x38]
movsx ecx, di
mov edx, dword [eax]
cmp byte [edx + ecx], 0
jne 0x4024b4
mov eax, dword [esp + 0x10]
cmp eax, ebp
je 0x402699
mov ecx, dword [eax - 4]
lea esi, [eax - 4]
push 0x4021e0
push ecx
push 0x10
push eax
call fcn.004a30f0
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x14]
cmp ecx, ebp
mov esi, ecx
je 0x4026b6
push 0x408e90
call fcn.0043fe20
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dl, byte [esp + 0x2e]
mov byte [esp + 0x80], 0xa
shr dl, 6
test dl, 1
je 0x4026e6
push 0x434d80
lea ecx, [esp + 0x3c]
call fcn.0043fe20
push 0x434d80
lea ecx, [esp + 0x40]
call fcn.0043fe20
push 0x43b350
lea ecx, [esp + 0x40]
mov byte [esp + 0x84], 9
call fcn.0043fe20
push 0x43b350
lea ecx, [esp + 0x3c]
mov byte [esp + 0x84], 8
call fcn.0043fe20
mov eax, dword [esp + 0x34]
mov byte [esp + 0x80], 0
cmp eax, ebp
je 0x40272b
push eax
call fcn.00442aa0
add esp, 4
mov ecx, dword [esp + 0x78]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x74
ret