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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x48], 0xfeedface
mov eax, dword [ebx + 0x58]
cmp eax, 1
jle 0x41ca32
lea edx, [ebx + 0x1e0]
lea edi, [esp + 0x44]
mov dword [esp + 0x24], edx
mov esi, edx
jmp 0x41c865
mov edx, 1
mov eax, ebx
call fcn.00419b90
cmp eax, 0xfffffffe
je 0x41ca28
test eax, eax
jle 0x41ca20
mov eax, dword [ebx + 0x58]
cmp eax, 4
jne 0x41c845
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.00420230
cmp eax, 0
je 0x41c845
mov esi, eax
jle 0x41ca20
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call fcn.0041c3e0
mov edx, dword [esp + 0x80]
mov eax, dword [eax + 4]
imul edx, eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x34], edx
mov edx, eax
sar edx, 0x1f
idiv dword [esp + 0x34]
mov ecx, eax
cmp eax, esi
jge 0x41c8ca
mov eax, 0xffffff7d
test ecx, ecx
jle 0x41ca20
mov esi, ecx
cmp dword [esp + 0x84], 1
sbb eax, eax
cmp dword [esp + 0x80], 1
je 0x41ca39
and eax, 0x8000
mov dword [esp + 0x1c], eax
mov al, 0xce
cmp al, 0xfe
sete al
and eax, 0xff
cmp dword [esp + 0x7c], eax
je 0x41cbcf
mov edi, dword [esp + 0x7c]
test edi, edi
je 0x41caf3
fnstcw word [esp + 0x4e]
mov dx, word [esp + 0x4e]
or dx, 0xf3ff
mov word [esp + 0x4c], dx
fldcw word [esp + 0x4c]
mov edx, dword [esp + 0x30]
mov ax, word [esp + 0x4e]
add edx, edx
mov word [esp + 0x38], ax
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], edx
fld dword [0x6e5050]
mov dword [esp + 0x28], esi
mov dword [esp + 0x3c], ebx
mov eax, ebp
mov ebx, dword [esp + 0x30]
test ebx, ebx
jle 0x41c9b6
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x2c]
shl ebp, 2
add edi, eax
xor edx, edx
mov esi, dword [esp + 0x44]
nop
lea esi, [esi]
mov ecx, dword [esi + edx]
fld dword [ecx + ebp]
fmul st(1)
fist dword [esp + 0x48]
fstp st(0)
mov ecx, dword [esp + 0x48]
cmp ecx, 0xffff8000
jge 0x41c98f
mov ecx, 0xffff8000
cmp ecx, 0x7fff
jle 0x41c99c
mov ecx, 0x7fff
mov ebx, dword [esp + 0x1c]
add edx, 4
add ecx, ebx
mov ebx, ecx
mov byte [eax + 1], cl
sar ebx, 8
mov byte [eax], bl
add eax, 2
cmp eax, edi
jne 0x41c970
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
inc esi
mov dword [esp + 0x20], esi
cmp dword [esp + 0x20], edx
jl 0x41c950
fstp st(0)
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov word [esp + 0x4c], ax
fldcw word [esp + 0x4c]
mov edx, dword [esp + 0x24]
mov dword [esp + 4], esi
mov dword [esp], edx
call fcn.004202b0
mov edx, esi
mov eax, dword [esp + 0x88]
sar edx, 0x1f
add dword [ebx + 0x50], esi
adc dword [ebx + 0x54], edx
test eax, eax
je 0x41ca12
mov edx, dword [esp + 0x88]
mov eax, dword [ebx + 0x60]
mov dword [edx], eax
mov eax, dword [esp + 0x34]
imul eax, esi
lea esi, [esi]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
add esp, 0x5c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0xffffff7d
jmp 0x41ca20
and eax, 0x80
fnstcw word [esp + 0x4c]
mov dx, word [esp + 0x4c]
or dx, 0xf3ff
mov word [esp + 0x4e], dx
fldcw word [esp + 0x4e]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x1c], 0
mov word [esp + 0x28], dx
mov dword [esp + 0x20], esi
fld dword [0x6e504c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x2c], ebx
mov edi, eax
lea esi, [esi]
test ecx, ecx
jle 0x41cac4
mov esi, dword [esp + 0x1c]
xor eax, eax
shl esi, 2
mov ebx, dword [esp + 0x44]
mov edx, dword [ebx + eax*4]
fld dword [edx + esi]
fmul st(1)
fist dword [esp + 0x48]
fstp st(0)
mov edx, dword [esp + 0x48]
cmp edx, 0xffffff80
jge 0x41caad
mov edx, 0xffffff80
cmp edx, 0x7f
jle 0x41cab7
mov edx, 0x7f
add edx, edi
mov byte [ebp + eax], dl
inc eax
cmp eax, ecx
jne 0x41ca91
add ebp, ecx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
inc edx
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x1c], eax
jl 0x41ca80
fstp st(0)
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x2c]
mov word [esp + 0x4e], dx
fldcw word [esp + 0x4e]
jmp 0x41c9e0
fnstcw word [esp + 0x4c]
mov dx, word [esp + 0x4c]
or dx, 0xf3ff
mov word [esp + 0x4e], dx
fldcw word [esp + 0x4e]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x4c]
add eax, eax
mov word [esp + 0x38], dx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], 0
mov eax, ebp
mov dword [esp + 0x28], esi
fld dword [0x6e5050]
mov dword [esp + 0x3c], ebx
mov ebp, dword [esp + 0x1c]
lea esi, [esi]
mov edx, dword [esp + 0x30]
test edx, edx
jle 0x41cba0
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x2c]
shl edi, 2
add esi, eax
xor ecx, ecx
mov ebx, dword [esp + 0x44]
nop
lea esi, [esi]
mov edx, dword [ebx + ecx]
fld dword [edx + edi]
fmul st(1)
fist dword [esp + 0x48]
fstp st(0)
mov edx, dword [esp + 0x48]
cmp edx, 0xffff8000
jge 0x41cb7f
mov edx, 0xffff8000
cmp edx, 0x7fff
jle 0x41cb8c
mov edx, 0x7fff
add edx, ebp
add ecx, 4
mov byte [eax], dl
sar edx, 8
mov byte [eax + 1], dl
add eax, 2
cmp eax, esi
jne 0x41cb60
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x20], ecx
cmp dword [esp + 0x20], edx
jl 0x41cb40
fstp st(0)
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov word [esp + 0x4e], ax
fldcw word [esp + 0x4e]
jmp 0x41c9e0
mov eax, dword [esp + 0x84]
test eax, eax
je 0x41cc8f
fnstcw word [esp + 0x4e]
mov dx, word [esp + 0x4e]
or dx, 0xf3ff
mov word [esp + 0x4c], dx
fldcw word [esp + 0x4c]
mov dx, word [esp + 0x4e]
mov eax, dword [esp + 0x30]
mov word [esp + 0x20], dx
test eax, eax
jle 0x41cc7d
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1c], ebp
add edi, edi
xor ebp, ebp
mov dword [esp + 0x28], eax
fld dword [0x6e5050]
mov dword [esp + 0x2c], ebx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov ebx, dword [edx + ebp*4]
fld dword [ebx + eax*4]
fmul st(1)
fist dword [esp + 0x48]
fstp st(0)
mov edx, dword [esp + 0x48]
cmp edx, 0xffff8000
jge 0x41cc4e
mov edx, 0xffff8000
cmp edx, 0x7fff
jle 0x41cc5b
mov edx, 0x7fff
inc eax
mov word [ecx], dx
add ecx, edi
cmp eax, esi
jl 0x41cc32
mov eax, dword [esp + 0x1c]
inc ebp
add eax, 2
cmp ebp, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
jne 0x41cc25
fstp st(0)
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov word [esp + 0x4c], ax
fldcw word [esp + 0x4c]
jmp 0x41c9e0
fnstcw word [esp + 0x4c]
mov dx, word [esp + 0x4c]
or dx, 0xf3ff
mov word [esp + 0x4e], dx
fldcw word [esp + 0x4e]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x30]
mov word [esp + 0x2c], dx
test eax, eax
jle 0x41cd4f
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x44]
add eax, eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], 0
mov dword [esp + 0x28], edx
mov ebp, eax
fld dword [0x6e5050]
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
mov edi, dword [edx + eax*4]
xor eax, eax
fld dword [edi + eax*4]
fmul st(1)
fist dword [esp + 0x48]
fstp st(0)
mov edx, dword [esp + 0x48]
cmp edx, 0xffff8000
jge 0x41cd12
mov edx, 0xffff8000
cmp edx, 0x7fff
jle 0x41cd1f
mov edx, 0x7fff
add edx, ecx
inc eax
mov word [ebx], dx
add ebx, ebp
cmp eax, esi
jl 0x41ccf6
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
add eax, 2
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x1c], eax
jne 0x41cce5
fstp st(0)
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
mov word [esp + 0x4e], dx
fldcw word [esp + 0x4e]
jmp 0x41c9e0