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

Disassembly:
push 0xffffffffffffffff
push 0x4a41f8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe0
push ebx
mov eax, 0x7fff
push ebp
push esi
mov word [esp + 0x3c], ax
mov word [esp + 0x3e], ax
xor esi, esi
mov eax, 0xffff8001
push edi
mov dword [esp + 0x48], esi
mov word [esp + 0x44], ax
mov word [esp + 0x46], ax
lea ecx, [esp + 0x90]
mov dword [esp + 0xf8], esi
mov dword [esp + 0x68], esi
call fcn.0046a2d0
lea ecx, [esp + 0xc0]
mov byte [esp + 0xf8], 1
call fcn.0046a2d0
mov dword [esp + 0x18], esi
mov word [esp + 0x1e], si
mov word [esp + 0x20], si
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov ebp, dword [esp + 0x100]
mov byte [esp + 0xf8], 3
mov eax, dword [ebp + 0x38]
mov edi, dword [eax]
push edi
mov dword [esp + 0x78], edi
call fcn.0041f330
mov ecx, dword [ebp + 0x38]
mov dword [esp + 0x7c], eax
add esp, 4
mov al, byte [ecx + 0xc]
cmp al, 5
je 0x41f726
cmp al, 8
je 0x41f726
cmp al, 7
je 0x41f726
mov byte [esp + 0x3c], 0
jmp 0x41f73e
push edi
mov byte [esp + 0x40], 1
call fcn.00421240
add esp, 4
mov byte [esp + 0x14], 1
test ax, ax
jg 0x41f743
mov byte [esp + 0x14], 0
push edi
call fcn.00410030
mov ecx, dword [esp + 0x108]
lea edx, [esp + 0x86]
test eax, eax
lea eax, [esp + 0x3e]
push edx
push eax
push ecx
setne bl
push ebp
mov byte [esp + 0x98], bl
call fcn.00412480
mov eax, dword [ebp + 0x38]
add esp, 0x14
mov edi, dword [eax]
cmp edi, esi
je 0x41f788
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jmp 0x41f78a
xor ecx, ecx
movsx edx, word [esp + 0x3a]
cmp ecx, edx
mov cl, byte [0x4ca488]
sete al
test cl, cl
mov byte [esp + 0x7c], al
je 0x41f7e9
neg al
sbb al, al
and al, 0xe
add al, 0x46
movsx eax, al
neg bl
sbb bl, bl
push eax
mov al, byte [esp + 0x18]
and bl, 0xe
add bl, 0x46
neg al
sbb al, al
and al, 0xe
add al, 0x46
movsx edx, al
mov al, byte [esp + 0x40]
neg al
sbb al, al
and al, 0xe
movsx ecx, bl
add al, 0x46
push ecx
movsx eax, al
push edx
push eax
push 0x4b6338
call fcn.00443600
add esp, 0x14
mov eax, dword [ebp + 0x38]
mov edi, dword [eax]
cmp edi, esi
je 0x41f800
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
jmp 0x41f802
xor edi, edi
mov esi, dword [ebp + 8]
mov cl, byte [esi + 6]
shr cl, 6
test cl, 1
jne 0x41f826
push 0
push 2
push 0x4b1624
push 0x4ca574
call fcn.00441210
add esp, 0x10
lea ecx, [esi + 0x10]
call fcn.0043ff80
cmp edi, eax
je 0x41f877
mov edi, dword [ebp + 8]
mov dl, byte [edi + 6]
shr dl, 6
test dl, 1
jne 0x41f856
push 0
push 2
push 0x4b1624
push 0x4ca574
call fcn.00441210
add esp, 0x10
mov eax, dword [ebp + 0x38]
lea ecx, [edi + 0x10]
mov esi, dword [eax]
call fcn.0043ff80
push eax
push esi
push 0x4b6304
call fcn.00443600
add esp, 0xc
call fcn.004415c0
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x18]
push eax
call fcn.0043f080
lea ecx, [ebp + 0x10]
push ecx
lea ecx, [esp + 0x1c]
call fcn.0043e990
mov edx, dword [0x4ca2f8]
mov eax, dword [0x4ca2e8]
cmp edx, eax
mov eax, 0x4ca2f8
jg 0x41f8aa
mov eax, 0x4ca2e8
mov esi, dword [eax]
sub esp, 8
movsx edi, si
mov dword [esp + 0x78], edi
fild dword [esp + 0x78]
fmul dword [ebp + 0x5c]
fidiv dword [0x4ca2d8]
fadd qword [0x4a8220]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
mov ebx, eax
cmp bx, 1
mov dword [esp + 0x8c], ebx
jle 0x41fd0b
cmp si, 1
jle 0x41fd0b
lea eax, [esp + 0x40]
lea ecx, [esp + 0x64]
push eax
lea edx, [esp + 0x34]
push ecx
push edx
lea eax, [esp + 0x24]
push 0x4caea0
push eax
call fcn.00409b40
mov al, byte [0x4ca4a8]
add esp, 0x14
test al, al
je 0x41f941
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x40]
push ecx
push edx
lea eax, [esp + 0x20]
push 0x4caea0
push eax
call fcn.0040a220
add esp, 0x10
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x30]
xor ebp, ebp
mov dword [esp + 0x48], eax
mov ecx, dword [eax]
mov dword [esp + 0x4c], ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x41f95b
mov eax, dword [eax]
jmp 0x41f95d
xor eax, eax
cmp eax, ebp
mov dword [esp + 0x50], eax
je 0x41f969
mov eax, dword [eax]
jmp 0x41f96b
xor eax, eax
lea ecx, [esp + 0x48]
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], ebp
mov byte [esp + 0x60], 0
mov byte [esp + 0x58], 0
mov byte [esp + 0x59], 0
call fcn.004020e0
mov ecx, dword [esp + 0x50]
cmp ecx, ebp
je 0x41f999
mov dword [esp + 0x5c], ecx
jmp 0x41f99e
mov byte [esp + 0x59], 1
mov byte [esp + 0x60], 0
mov dword [esp + 0x10], ebp
mov edx, dword [esp + 0x48]
cmp dword [edx], 0
je 0x41fc4a
cmp ecx, dword [esp + 0x5c]
jne 0x41f9c6
mov al, byte [esp + 0x60]
test al, al
jne 0x41fc4a
mov eax, dword [0x4caeac]
mov edx, dword [0x4caea8]
push eax
push edx
call fcn.004091d0
test al, al
jne 0x41fc33
movsx esi, bx
push 1
push esi
push esi
lea ecx, [esp + 0x9c]
call fcn.0046a390
mov eax, dword [esp + 0x1e]
shr eax, 0xc
test al, 1
jne 0x41fa0e
lea ecx, [esp + 0x90]
push ecx
call fcn.0046b210
add esp, 4
mov ecx, dword [esp + 0x104]
lea edx, [esp + 0x34]
lea eax, [esp + 0x90]
push edx
push eax
mov eax, dword [esp + 0x6c]
lea edx, [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x5c]
push edx
push eax
call fcn.00409840
mov ecx, dword [esp + 0x1e]
shr ecx, 0xc
test cl, 1
je 0x41fa52
lea edx, [esp + 0x90]
push edx
call fcn.0046b210
add esp, 4
push 1
push edi
push edi
lea ecx, [esp + 0xcc]
call fcn.0046a390
lea eax, [esp + 0xc0]
lea ecx, [esp + 0x90]
push eax
push ecx
call fcn.00421c00
mov eax, edi
add esp, 8
cdq
idiv esi
mov edx, dword [esp + 0x48]
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fmul dword [esp + 0x34]
fstp dword [esp + 0x34]
mov eax, dword [edx]
test eax, eax
je 0x41fad4
mov ecx, dword [esp + 0x50]
mov edx, dword [eax]
cmp ecx, edx
je 0x41fad4
mov dl, byte [esp + 0x58]
mov esi, dword [esp + 0x4c]
test ecx, ecx
jne 0x41fabd
cmp esi, eax
jne 0x41fabd
test dl, dl
je 0x41fad4
cmp ecx, eax
je 0x41fad4
test ecx, ecx
jne 0x41facd
cmp esi, eax
jne 0x41facd
test dl, dl
jne 0x41fad4
mov byte [esp + 0x6c], 1
jmp 0x41fad9
mov byte [esp + 0x6c], 0
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x7c]
movsx esi, bp
mov cl, byte [esi + eax]
mov eax, dword [esp + 0x6c]
push ecx
mov ecx, dword [esp + 0x88]
push edx
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x44]
push edx
push eax
lea edx, [esp + 0xd8]
push ecx
push edx
call fcn.0041fdd0
mov ebx, eax
mov eax, dword [esp + 0x120]
add esp, 0x20
cmp bp, word [eax + 0x48]
jl 0x41fb47
push 0xf0
push 0x4b1654
push 0x4b1640
push 0
push 0x4b1634
push 0x4ca5b0
call fcn.00441210
add esp, 0x18
mov ecx, dword [esp + 0x100]
lea ebp, [esi*4]
mov edi, ebp
add edi, dword [ecx + 0x44]
mov ecx, edi
call fcn.00438a60
test al, al
je 0x41fbeb
mov ecx, edi
call fcn.00438850
test al, al
jne 0x41fbeb
mov ecx, dword [esp + 0x10]
cmp cx, word [esp + 0x78]
jne 0x41fbaa
mov edx, dword [esp + 0x74]
mov al, byte [esi + edx]
cmp al, 0x49
je 0x41fb8e
cmp al, 0x69
jne 0x41fbaa
mov edx, dword [0x4ca3b8]
movsx eax, bx
cmp eax, edx
jl 0x41fbeb
mov esi, dword [esp + 0x100]
cmp cx, word [esi + 0x48]
jl 0x41fbdf
jmp 0x41fbbc
test bx, bx
jle 0x41fbeb
mov esi, dword [esp + 0x100]
cmp cx, word [esi + 0x48]
jl 0x41fbdf
push 0xf0
push 0x4b1654
push 0x4b1640
push 0
push 0x4b1634
push 0x4ca5b0
call fcn.00441210
add esp, 0x18
mov eax, dword [esi + 0x44]
mov ecx, ebp
add ecx, eax
call fcn.00438cc0
mov al, byte [0x4ca4a8]
test al, al
je 0x41fc0c
lea ecx, [esp + 0xc0]
lea edx, [esp + 0x90]
push ecx
push edx
call fcn.0040a4c0
add esp, 8
lea ecx, [esp + 0x90]
call fcn.0046a420
lea ecx, [esp + 0xc0]
call fcn.0046a420
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x8c]
mov edi, dword [esp + 0x70]
lea ecx, [esp + 0x48]
call fcn.004403e0
mov ecx, dword [esp + 0x50]
inc ebp
mov dword [esp + 0x10], ebp
jmp 0x41f9a7
mov eax, dword [esp + 0x64]
test eax, eax
je 0x41fc6f
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 + 0x30]
test ecx, ecx
mov esi, ecx
je 0x41fc8c
push 0x408e90
call fcn.0043fe20
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov al, byte [0x4ca4a8]
test al, al
je 0x41fc9e
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx]
call dword [edx + 0x5c]
mov al, byte [esp + 0x1e]
mov byte [esp + 0xf8], 9
shr al, 6
test al, 1
je 0x41fccd
push 0x434d80
lea ecx, [esp + 0x2c]
call fcn.0043fe20
push 0x434d80
lea ecx, [esp + 0x30]
call fcn.0043fe20
push 0x43b350
lea ecx, [esp + 0x30]
mov byte [esp + 0xfc], 8
call fcn.0043fe20
push 0x43b350
lea ecx, [esp + 0x2c]
mov byte [esp + 0xfc], 7
call fcn.0043fe20
mov eax, dword [esp + 0x24]
mov byte [esp + 0xf8], 2
test eax, eax
je 0x41fd80
jmp 0x41fd77
mov cl, byte [esp + 0x1e]
mov byte [esp + 0xf8], 6
shr cl, 6
test cl, 1
je 0x41fd3b
push 0x434d80
lea ecx, [esp + 0x2c]
call fcn.0043fe20
push 0x434d80
lea ecx, [esp + 0x30]
call fcn.0043fe20
push 0x43b350
lea ecx, [esp + 0x30]
mov byte [esp + 0xfc], 5
call fcn.0043fe20
push 0x43b350
lea ecx, [esp + 0x2c]
mov byte [esp + 0xfc], 4
call fcn.0043fe20
mov eax, dword [esp + 0x24]
mov byte [esp + 0xf8], 2
test eax, eax
je 0x41fd80
push eax
call fcn.00442aa0
add esp, 4
lea ecx, [esp + 0xc0]
mov byte [esp + 0xf8], 1
call fcn.0046a420
lea ecx, [esp + 0x90]
mov byte [esp + 0xf8], 0
call fcn.0046a420
mov ecx, dword [esp + 0xf0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xec
ret