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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4a377d
push eax
mov eax, dword [esp + 0x10]
mov dword fs:[0], esp
sub esp, 0xe0
push ebx
push ebp
push esi
mov esi, dword [eax + 8]
push edi
mov cl, byte [esi + 6]
shr cl, 6
test cl, 1
jne 0x403d27
push 0
push 2
push 0x4b1624
push 0x4c9434
call fcn.00441210
add esp, 0x10
lea eax, [esi + 0x10]
lea ecx, [esp + 0xb8]
push eax
call fcn.0040f9a0
mov ebp, dword [esp + 0x104]
lea ecx, [esp + 0x94]
push ebp
call fcn.0040f9a0
mov ebx, dword [esp + 0x108]
lea ecx, [esp + 0xd4]
push ebx
call fcn.0040f9a0
xor edx, edx
mov ecx, 0x7fff
mov eax, 0xffff8001
mov dword [esp + 0x5c], edx
mov word [esp + 0x40], cx
mov word [esp + 0x42], cx
mov word [esp + 0x44], ax
mov word [esp + 0x46], ax
mov dword [esp + 0xf8], edx
mov dword [esp + 0x14], edx
mov word [esp + 0x1a], dx
mov word [esp + 0x1c], dx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], edx
mov word [esp + 0x48], cx
mov word [esp + 0x4a], cx
mov word [esp + 0x4c], ax
mov word [esp + 0x4e], ax
mov ecx, dword [0x4c947c]
mov al, byte [0x4c9398]
mov edi, dword [0x4caeb0]
inc ecx
test al, al
mov byte [esp + 0xf8], 2
mov dword [esp + 0x78], edx
mov dword [0x4c947c], ecx
je 0x403e03
push 0x43b350
lea ecx, [esp + 0x2c]
mov byte [esp + 0xfc], 4
call fcn.0043fe20
mov byte [esp + 0xf8], 3
jmp 0x403f10
mov eax, dword [esp + 0x100]
lea edx, [esp + 0x30]
push edx
mov ecx, dword [eax + 4]
call fcn.0043d1f0
mov esi, eax
mov ecx, esi
call fcn.00402110
test al, al
jne 0x403e32
mov ax, word [esi + 6]
mov si, word [esi + 2]
sub eax, esi
mov ecx, eax
jmp 0x403e34
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 0x403e9e
mov dl, byte [esp + 0x1a]
mov byte [esp + 0xf8], 8
shr dl, 6
test dl, 1
je 0x403e7e
push 0x434d80
lea ecx, [esp + 0x28]
call fcn.0043fe20
push 0x434d80
lea ecx, [esp + 0x2c]
call fcn.0043fe20
push 0x43b350
lea ecx, [esp + 0x2c]
mov byte [esp + 0xfc], 7
call fcn.0043fe20
mov byte [esp + 0xf8], 6
jmp 0x403f10
mov ecx, ebp
call fcn.0043ff80
test eax, eax
jne 0x403f37
mov al, byte [0x4c93b8]
test al, al
je 0x403ec3
push 0x4b18e4
call fcn.00443600
add esp, 4
mov al, byte [esp + 0x1a]
mov byte [esp + 0xf8], 0xb
shr al, 6
test al, 1
je 0x403ef2
push 0x434d80
lea ecx, [esp + 0x28]
call fcn.0043fe20
push 0x434d80
lea ecx, [esp + 0x2c]
call fcn.0043fe20
push 0x43b350
lea ecx, [esp + 0x2c]
mov byte [esp + 0xfc], 0xa
call fcn.0043fe20
mov byte [esp + 0xf8], 9
push 0x43b350
lea ecx, [esp + 0x28]
call fcn.0043fe20
mov eax, dword [esp + 0x20]
mov byte [esp + 0xf8], 0
test eax, eax
je 0x4046d0
jmp 0x4046c7
mov ecx, dword [esp + 0xd4]
cmp dword [ecx], 0
je 0x403f54
push ebx
push ebp
call fcn.00402dd0
push ebx
push ebp
call fcn.004046f0
add esp, 0x10
mov dx, word [0x4c96d0]
mov eax, dword [esp + 0x100]
push edx
push eax
call fcn.00401930
add esp, 8
test al, al
jne 0x403f8d
mov ecx, dword [esp + 0x100]
lea esi, [ecx + 0x44]
mov ecx, esi
call fcn.00439210
mov cx, word [esi + 4]
sub cx, ax
test cx, cx
jne 0x403f9a
mov al, byte [0x4c9338]
test al, al
je 0x40465b
mov al, byte [0x4c93b8]
mov ebp, dword [esp + 0x100]
test al, al
je 0x403fd8
mov edx, dword [ebp + 0x38]
mov eax, dword [edx]
push eax
push 0x4b18cc
call fcn.00443600
mov eax, dword [0x4cae98]
add esp, 8
lea ecx, [ebp + 0x44]
push eax
call fcn.004393f0
push 0x4b18c8
call fcn.00443600
add esp, 4
mov ecx, dword [ebp + 8]
push ecx
lea ecx, [esp + 0x18]
call fcn.0043f080
lea edx, [ebp + 0x10]
lea ecx, [esp + 0x14]
push edx
call fcn.0043e990
mov al, byte [esp + 0x1a]
shr al, 6
test al, 1
jne 0x404013
push 0
push 2
push 0x4b1624
push 0x4c9434
call fcn.00441210
add esp, 0x10
mov eax, dword [esp + 0x24]
xor edi, edi
lea ecx, [esp + 0x24]
cmp eax, edi
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
je 0x40402d
mov eax, dword [eax]
jmp 0x40402f
xor eax, eax
cmp eax, edi
mov dword [esp + 0x80], eax
je 0x40403e
mov eax, dword [eax]
jmp 0x404040
xor eax, eax
mov dword [esp + 0x84], eax
lea edx, [esp + 0x40]
lea eax, [esp + 0x54]
push edx
lea ecx, [esp + 0x40]
push eax
push ecx
lea edx, [esp + 0x20]
push 0x4caea0
push edx
mov dword [esp + 0xa0], edi
mov byte [esp + 0xa4], 0
mov byte [esp + 0x9c], 0
mov byte [esp + 0x9d], 0
call fcn.00409b40
mov eax, dword [esp + 0x50]
add esp, 0x14
mov dword [esp + 0x5c], eax
mov ecx, dword [eax]
mov dword [esp + 0x60], ecx
mov eax, dword [eax]
cmp eax, edi
je 0x40409f
mov eax, dword [eax]
jmp 0x4040a1
xor eax, eax
cmp eax, edi
mov dword [esp + 0x64], eax
je 0x4040ad
mov eax, dword [eax]
jmp 0x4040af
xor eax, eax
lea ecx, [esp + 0x5c]
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], edi
mov byte [esp + 0x74], 0
mov byte [esp + 0x6c], 0
mov byte [esp + 0x6d], 0
call fcn.004020e0
lea edx, [esp + 0x30]
lea ecx, [esp + 0x14]
push edx
call fcn.0043d1f0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x48], ecx
lea ecx, [esp + 0xb8]
mov dword [esp + 0x4c], edx
call fcn.004020e0
lea ecx, [esp + 0x78]
call fcn.004020e0
mov eax, dword [ebp + 0x38]
mov dword [esp + 0x10], edi
mov ecx, dword [eax]
cmp byte [ecx], 0
je 0x4045e2
mov dx, word [esp + 0x10]
cmp dx, word [ebp + 0x48]
jl 0x40413f
push 0xf0
push 0x4b1654
push 0x4b1640
push 0
push 0x4b1634
push 0x4c9470
call fcn.00441210
add esp, 0x18
mov edx, dword [ebp + 0x44]
lea ebx, [edi*4]
mov esi, ebx
mov dword [esp + 0x2c], ebx
add esi, edx
mov ecx, esi
call fcn.00438a60
test al, al
je 0x404167
mov ecx, esi
call fcn.00438850
test al, al
je 0x4041b4
mov al, byte [0x4c9328]
test al, al
je 0x4045a9
mov ax, word [esp + 0x10]
cmp ax, word [ebp + 0x48]
jl 0x4041a2
push 0xf0
push 0x4b1654
push 0x4b1640
push 0
push 0x4b1634
push 0x4c9470
call fcn.00441210
add esp, 0x18
mov ecx, dword [ebp + 0x44]
add ecx, ebx
call fcn.00438a60
test al, al
je 0x4045a9
lea ecx, [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0x84]
call fcn.00435490
mov al, byte [0x4c93b8]
mov byte [esp + 0xf8], 0xc
test al, al
je 0x4041f2
mov edx, dword [ebp + 0x38]
push edi
mov eax, dword [edx]
push eax
movsx eax, byte [eax + edi]
push eax
push 0x4b1864
call fcn.00443600
add esp, 0x10
mov al, byte [0x4c92f8]
test al, al
je 0x40421b
mov ecx, dword [ebp + 0x38]
mov edx, dword [0x4c947c]
push edi
push edx
mov eax, dword [ecx]
push eax
movsx eax, byte [eax + edi]
push eax
push 0x4b1834
call fcn.00443600
add esp, 0x14
mov ecx, dword [ebp + 0x38]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x1a]
shr ecx, 0xc
mov al, byte [edx + edi]
mov edx, dword [esp + 0x44]
and cl, 1
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x70]
push eax
push ecx
push edx
call fcn.004047c0
add esp, 0x18
mov dword [esp + 0x50], eax
test eax, eax
jne 0x4042bc
mov eax, dword [ebp + 0x38]
push edi
mov eax, dword [eax]
push eax
push 0x4b15c4
call fcn.00443600
mov al, byte [0x4c93b8]
add esp, 0xc
test al, al
je 0x40427d
push 0x4b1814
call fcn.00443600
add esp, 4
mov cx, word [esp + 0x10]
cmp cx, word [ebp + 0x48]
jl 0x4042ab
push 0xf0
push 0x4b1654
push 0x4b1640
push 0
push 0x4b1634
push 0x4c9470
call fcn.00441210
add esp, 0x18
mov eax, dword [ebp + 0x44]
mov ecx, ebx
add ecx, eax
call fcn.00438bb0
jmp 0x4045a1
mov ecx, dword [esp + 0x9c]
xor bl, bl
test ecx, ecx
mov dword [esp + 0x38], 0x4f000000
mov dword [esp + 0x58], 0
je 0x4042e2
mov dword [esp + 0xa8], ecx
jmp 0x4042ea
mov byte [esp + 0xa5], 1
mov esi, dword [esp + 0x50]
mov byte [esp + 0xac], 0
mov edx, dword [esp + 0x94]
cmp dword [edx], 0
je 0x404359
cmp ecx, dword [esp + 0xa8]
jne 0x404316
mov al, byte [esp + 0xac]
test al, al
jne 0x404359
mov al, byte [ecx + 8]
test al, al
je 0x404344
push esi
call fcn.0040b210
fcom dword [esp + 0x38]
fnstsw ax
test ah, 1
je 0x404342
mov eax, dword [esp + 0x9c]
fstp dword [esp + 0x38]
mov bl, byte [eax + 8]
mov dword [esp + 0x58], eax
jmp 0x404344
fstp st(0)
lea ecx, [esp + 0x94]
call fcn.004403e0
mov ecx, dword [esp + 0x9c]
jmp 0x4042f6
fld dword [esp + 0x38]
fst qword [esp + 0x30]
fcomp qword [0x4c9408]
fnstsw ax
test ah, 0x41
jne 0x4043ba
mov al, byte [0x4c93b8]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
test al, al
je 0x40438e
push esi
push edi
push 0x4b17f8
call fcn.00443600
add esp, 0xc
mov al, byte [0x4c92f8]
test al, al
je 0x4043a6
push esi
push edi
push 0x4b17f8
call fcn.00443600
add esp, 0xc
mov ax, word [esp + 0x10]
cmp ax, word [ebp + 0x48]
jl 0x4044f3
jmp 0x4044d0
mov ecx, dword [ebp + 0x38]
mov edx, dword [ecx]
mov al, byte [edx + edi]
cmp al, bl
mov al, byte [0x4c93b8]
jne 0x40448a
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
test al, al
je 0x4043ea
push esi
push edi
push 0x4b17dc
call fcn.00443600
add esp, 0xc
mov al, byte [0x4c92f8]
test al, al
je 0x404402
push esi
push edi
push 0x4b17dc
call fcn.00443600
add esp, 0xc
mov al, byte [0x4c96a0]
test al, al
je 0x40444c
mov ax, word [esp + 0x10]
cmp ax, word [ebp + 0x48]
jl 0x404439
push 0xf0
push 0x4b1654
push 0x4b1640
push 0
push 0x4b1634
push 0x4c9470
call fcn.00441210
add esp, 0x18
mov ecx, dword [ebp + 0x44]
mov eax, dword [esp + 0x2c]
add ecx, eax
call fcn.00438cf0
jmp 0x404501
mov cx, word [esp + 0x10]
cmp cx, word [ebp + 0x48]
jl 0x40447a
push 0xf0
push 0x4b1654
push 0x4b1640
push 0
push 0x4b1634
push 0x4c9470
call fcn.00441210
add esp, 0x18
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebp + 0x44]
add ecx, eax
call fcn.00438cd0
jmp 0x404501
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
test al, al
je 0x4044a9
movsx edx, bl
push esi
push edi
push edx
push 0x4b17b4
call fcn.00443600
add esp, 0x10
mov al, byte [0x4c92f8]
test al, al
je 0x4044c5
movsx eax, bl
push esi
push edi
push eax
push 0x4b17b4
call fcn.00443600
add esp, 0x10
mov cx, word [esp + 0x10]
cmp cx, word [ebp + 0x48]
jl 0x4044f3
push 0xf0
push 0x4b1654
push 0x4b1640
push 0
push 0x4b1634
push 0x4c9470
call fcn.00441210
add esp, 0x18
mov ecx, dword [ebp + 0x44]
mov eax, dword [esp + 0x2c]
add ecx, eax
call fcn.00438bb0
mov al, byte [0x4c92f8]
test al, al
je 0x4045a1
mov esi, dword [0x4c92c8]
mov eax, dword [0x4cbbd4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x404541
test cl, cl
je 0x40453d
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x404541
add eax, 2
add esi, 2
test cl, cl
jne 0x404519
xor eax, eax
jmp 0x404546
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x404561
mov eax, dword [0x4c947c]
mov ecx, dword [0x4c92e8]
cmp eax, ecx
je 0x404561
cmp eax, dword [0x4c92d8]
jne 0x4045a1
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x40]
push eax
push ecx
lea edx, [esp + 0x1c]
push 0x4caea0
push edx
call fcn.0040a220
mov ecx, dword [esp + 0x60]
mov eax, dword [0x4c947c]
add esp, 0x10
mov dword [0x4c9474], eax
push ecx
mov ecx, dword [esp + 0x5c]
call fcn.0040b210
fstp st(0)
mov dword [0x4c9474], 0
mov byte [esp + 0xf8], 2
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x5c]
inc esi
mov dword [esp + 0x10], esi
call fcn.004403e0
lea ecx, [esp + 0xb8]
call fcn.004403e0
lea ecx, [esp + 0x78]
call fcn.004403e0
mov edx, dword [ebp + 0x38]
movsx edi, si
mov eax, dword [edx]
cmp byte [eax + edi], 0
jne 0x404111
mov eax, dword [esp + 0x54]
test eax, eax
je 0x404607
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 + 0x3c]
test ecx, ecx
mov esi, ecx
je 0x404624
push 0x408e90
call fcn.0043fe20
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov al, byte [0x4c93b8]
test al, al
je 0x40465b
mov edx, dword [ebp + 0x38]
mov eax, dword [edx]
push eax
push 0x4b18b4
call fcn.00443600
mov eax, dword [0x4cae98]
add esp, 8
lea ecx, [ebp + 0x44]
push eax
call fcn.004393f0
push 0x4b18c8
call fcn.00443600
add esp, 4
mov cl, byte [esp + 0x1a]
mov byte [esp + 0xf8], 0xf
shr cl, 6
test cl, 1
je 0x40468b
push 0x434d80
lea ecx, [esp + 0x28]
call fcn.0043fe20
push 0x434d80
lea ecx, [esp + 0x2c]
call fcn.0043fe20
push 0x43b350
lea ecx, [esp + 0x2c]
mov byte [esp + 0xfc], 0xe
call fcn.0043fe20
push 0x43b350
lea ecx, [esp + 0x28]
mov byte [esp + 0xfc], 0xd
call fcn.0043fe20
mov eax, dword [esp + 0x20]
mov byte [esp + 0xf8], 0
test eax, eax
je 0x4046d0
push eax
call fcn.00442aa0
add esp, 4
mov ecx, dword [esp + 0xf0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xec
ret