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

Disassembly:
sub esp, 0x114
mov eax, dword [0x4f5608]
xor eax, esp
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x12c]
mov edx, dword [esp + 0x128]
push ebx
push ebp
mov ebp, dword [esp + 0x120]
mov ebx, ecx
push esi
mov dword [esp + 0x3c], eax
mov eax, edx
mov ecx, edx
push edi
xor edi, edi
and eax, 0x20
and ecx, 0x200
xor esi, esi
cmp dword [esp + 0x134], 0xffffffff
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x17], 0
mov dword [esp + 0x18], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x74], eax
mov dword [esp + 0x24], ecx
jne 0x408446
mov dword [esp + 0x134], 6
fldz
fld qword [esp + 0x140]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x40845f
mov byte [esp + 0x17], 0x2d
jmp 0x408475
test dl, 2
je 0x40846b
mov byte [esp + 0x17], 0x2b
jmp 0x408475
test dl, 4
je 0x408475
mov byte [esp + 0x17], 0x20
fld st(0)
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x408497
fstp st(0)
fstp st(0)
test dl, 0x40
je 0x408490
mov ecx, 0x4f2990
jmp 0x4084c0
mov ecx, 0x4f2994
jmp 0x4084c0
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x408515
fld st(0)
fadd st(1)
fucomp st(1)
fnstsw ax
test ah, 0x44
jp 0x408515
fstp st(0)
mov ecx, 0x4f2998
test dl, 0x40
jne 0x4084c0
mov ecx, 0x4f299c
mov al, byte [esp + 0x17]
test al, al
je 0x4084d4
mov byte [esp + 0xc4], al
mov esi, 1
mov al, byte [ecx]
test al, al
je 0x4084ef
lea ebx, [ebx]
inc ecx
mov byte [esp + esi + 0xc4], al
mov al, byte [ecx]
inc esi
test al, al
jne 0x4084e0
mov ecx, dword [esp + 0x12c]
mov eax, dword [esp + 0x130]
push edx
push esi
push ecx
push ebp
lea ecx, [esp + 0xd4]
call fcn.00407ff0
add esp, 0x10
jmp 0x408b84
cmp ecx, edi
jne 0x408526
mov eax, edx
and eax, 0x100
mov dword [esp + 0x2c], eax
je 0x408569
mov eax, edx
and eax, 0x100
mov dword [esp + 0x2c], eax
je 0x408548
mov eax, 1
sub dword [esp + 0x134], eax
test dl, 8
jne 0x408548
mov dword [esp + 0x64], eax
sub esp, 8
fstp qword [esp]
call fcn.00408ba0
add esp, 8
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], 1
fld qword [esp + 0x140]
mov eax, 0x13
cmp dword [esp + 0x134], eax
jle 0x40857e
mov dword [esp + 0x134], eax
fldz
fcomp st(1)
fnstsw ax
test ah, 0x41
jnp 0x40858b
fchs
fst qword [esp + 0x68]
cmp dword [esp + 0x24], edi
je 0x4085a8
mov eax, dword [esp + 0x18]
fstp st(0)
call fcn.00408c80
fdivr qword [esp + 0x68]
fst qword [esp + 0x68]
fld qword [0x4f3208]
fcomp st(1)
fnstsw ax
test ah, 0x41
jnp 0x4087f7
fld st(0)
call fcn.004bbd96
mov ecx, eax
mov eax, edx
mov esi, edx
and eax, 0x7fffffff
and esi, 0x80000000
mov dword [esp + 0xac], eax
mov dword [esp + 0xa8], ecx
fild qword [esp + 0xa8]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], edi
fild qword [esp + 0x78]
fchs
faddp st(1)
fcompp
fnstsw ax
test ah, 0x41
jnp 0x408607
add ecx, 0xffffffff
adc edx, 0xffffffff
mov ebp, ecx
mov eax, ebp
and eax, edx
mov dword [esp + 0x54], edx
cmp eax, 0xffffffff
je 0x4087f9
mov eax, dword [esp + 0x134]
call fcn.00408c80
call fcn.004bbd96
mov ebx, eax
mov eax, dword [esp + 0x54]
mov ecx, eax
and eax, 0x7fffffff
and ecx, 0x80000000
mov edi, edx
mov dword [esp + 0xbc], eax
xor edx, edx
mov dword [esp + 0x94], ecx
mov dword [esp + 0xb8], ebp
fild qword [esp + 0xb8]
mov dword [esp + 0x90], edx
fild qword [esp + 0x90]
mov eax, edi
mov ecx, edi
and eax, 0x7fffffff
fchs
and ecx, 0x80000000
faddp st(1)
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xa4], ecx
fsubr qword [esp + 0x68]
mov dword [esp + 0xa0], edx
fild qword [esp + 0xb0]
fild qword [esp + 0xa0]
fchs
faddp st(1)
fmulp st(1)
fld qword [0x4f3208]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x4086ca
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x408723
fld st(0)
call fcn.004bbd96
mov ecx, eax
mov eax, edx
mov esi, edx
and eax, 0x7fffffff
and esi, 0x80000000
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], ecx
fild qword [esp + 0x80]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x88], 0
fild qword [esp + 0x88]
fchs
faddp st(1)
fcomp st(1)
fnstsw ax
test ah, 0x41
jnp 0x408723
add ecx, 0xffffffff
adc edx, 0xffffffff
mov eax, edx
mov esi, edx
and eax, 0x7fffffff
and esi, 0x80000000
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], ecx
fild qword [esp + 0x98]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], 0
fild qword [esp + 0x58]
fchs
faddp st(1)
fsubp st(1)
fcomp qword [0x4f3218]
fnstsw ax
test ah, 5
jnp 0x408770
add ecx, 1
adc edx, 0
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], ecx
cmp edx, edi
jb 0x4087b6
ja 0x408782
cmp ecx, ebx
jb 0x4087b6
mov eax, dword [esp + 0x24]
mov edx, 0
add ebp, 1
adc dword [esp + 0x54], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], edx
cmp eax, edx
je 0x4087bc
cmp ebp, 0xa
jne 0x4087bc
cmp dword [esp + 0x54], edx
jne 0x4087bc
inc dword [esp + 0x18]
lea ebp, [edx + 1]
mov dword [esp + 0x54], edx
jmp 0x4087bc
mov eax, dword [esp + 0x24]
xor edx, edx
cmp dword [esp + 0x2c], edx
je 0x40880c
cmp eax, edx
je 0x40888a
mov ecx, dword [esp + 0x134]
lea edx, [ecx + 1]
mov ecx, dword [esp + 0x18]
cmp edx, ecx
jle 0x408808
cmp ecx, 0xfffffffc
jl 0x408808
sub dword [esp + 0x134], ecx
mov dword [esp + 0x24], 0
xor edi, edi
jmp 0x408562
fstp st(0)
mov eax, dword [esp + 0x40]
mov dword [eax], 1
jmp 0x408b84
xor edx, edx
jmp 0x408810
mov ecx, dword [esp + 0x18]
cmp eax, edx
je 0x40888a
test ecx, ecx
jge 0x408825
neg ecx
mov dword [esp + 0x18], ecx
mov byte [esp + 0x23], 0x2d
jmp 0x40882a
mov byte [esp + 0x23], 0x2b
mov eax, dword [esp + 0x18]
cdq
xor esi, esi
push 0
push 0xa
push edx
push eax
call fcn.004195d0
mov cl, byte [ecx + str.0123456789abcdef]
mov byte [esp + esi + 0x24], cl
mov ecx, eax
inc esi
or ecx, edx
mov dword [esp + 0x5c], ebx
je 0x408856
cmp esi, 2
jb 0x408831
mov eax, esi
cmp esi, 1
jne 0x408867
mov byte [esp + 0x25], 0x30
mov eax, 2
mov ecx, dword [esp + 0x138]
mov dl, byte [esp + 0x23]
shr ecx, 1
not cl
mov byte [esp + eax + 0x24], dl
and cl, 0x20
inc eax
or cl, 0x45
mov byte [esp + eax + 0x24], cl
inc eax
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x54]
mov eax, ebp
xor edi, edi
push 0
push 0xa
push ecx
push eax
call fcn.004195d0
mov cl, byte [ecx + str.0123456789abcdef]
mov byte [esp + edi + 0xc4], cl
mov ecx, edx
mov edx, eax
inc edi
or edx, ecx
mov dword [esp + 0x5c], ebx
je 0x4088bc
cmp edi, 0x2b
jb 0x408892
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, eax
or edx, ecx
mov dword [esp + 0x40], edi
je 0x4088fe
xor esi, esi
push 0
push 0xa
push ecx
push eax
call fcn.004195d0
mov cl, byte [ecx + str.0123456789abcdef]
mov byte [esp + esi + 0xf0], cl
mov ecx, edx
mov edx, eax
inc esi
or edx, ecx
mov dword [esp + 0x5c], ebx
je 0x4088fa
cmp esi, 0x2b
jb 0x4088d0
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x134]
mov ecx, dword [esp + 0x48]
mov eax, esi
sub eax, ecx
cmp dword [esp + 0x64], 0
mov dword [esp + 0x2c], eax
je 0x408941
test ecx, ecx
jle 0x408931
mov eax, dword [esp + 0x28]
cmp byte [esp + eax + 0xf0], 0x30
jne 0x40893b
inc eax
cmp eax, ecx
jl 0x408920
jmp 0x40893b
mov eax, esi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], eax
sub esi, eax
mov bl, byte [esp + 0x138]
test esi, esi
jg 0x408951
test bl, 8
je 0x408959
mov dword [esp + 0x4c], 1
mov ebp, dword [esp + 0x74]
test ebp, ebp
je 0x40898d
mov eax, 0x55555556
imul edi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*2]
mov edx, edi
sub edx, eax
neg edx
sbb edx, edx
inc edx
mov ecx, edi
sub ecx, edx
mov eax, 0x55555556
imul ecx
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov eax, dword [esp + 0x130]
xor ecx, ecx
cmp dword [esp + 0x4c], ecx
setne cl
xor edx, edx
sub eax, ecx
mov cl, byte [esp + 0x17]
test cl, cl
setne dl
sub eax, edx
sub eax, edi
sub eax, ebp
sub eax, dword [esp + 0x44]
sub eax, esi
mov dword [esp + 0x18], eax
jns 0x4089c4
mov dword [esp + 0x18], 0
test bl, 1
je 0x408a12
mov eax, dword [esp + 0x18]
neg eax
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], 0
jle 0x408a6a
mov ebx, dword [esp + 0x12c]
mov esi, dword [esp + 0x3c]
lea esp, [esp]
mov eax, dword [esi]
lea edx, [eax + 1]
cmp edx, ebx
mov edx, dword [esp + 0x1c]
jae 0x408a01
mov byte [eax + edx], 0x20
mov eax, dword [esp + 0x18]
inc dword [esi]
dec eax
mov dword [esp + 0x18], eax
test eax, eax
jg 0x4089f0
jmp 0x408a79
test bl, 0x10
je 0x4089d3
cmp dword [esp + 0x18], 0
jle 0x408a6a
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x12c]
test cl, cl
je 0x408a48
mov eax, dword [esi]
lea edx, [eax + 1]
cmp edx, ebx
jae 0x408a3d
mov edx, dword [esp + 0x1c]
mov byte [eax + edx], cl
inc dword [esi]
mov byte [esp + 0x17], 0
mov cl, byte [esp + 0x17]
mov eax, dword [esi]
lea edx, [eax + 1]
cmp edx, ebx
mov edx, dword [esp + 0x1c]
jae 0x408a59
mov byte [eax + edx], 0x30
mov eax, dword [esp + 0x18]
inc dword [esi]
dec eax
mov dword [esp + 0x18], eax
test eax, eax
jg 0x408a48
jmp 0x408a79
mov ebx, dword [esp + 0x12c]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x3c]
test cl, cl
je 0x408a8f
mov eax, dword [esi]
lea edx, [eax + 1]
cmp edx, ebx
mov edx, dword [esp + 0x1c]
jae 0x408a8d
mov byte [eax + edx], cl
inc dword [esi]
test edi, edi
jle 0x408ae7
mov edi, dword [esp + 0x40]
mov eax, dword [esi]
lea ecx, [eax + 1]
dec edi
cmp ecx, ebx
jae 0x408aab
mov cl, byte [esp + edi + 0xc4]
mov byte [eax + edx], cl
inc dword [esi]
mov ecx, dword [esi]
test ebp, ebp
jle 0x408adf
test edi, edi
jle 0x408ae7
mov eax, 0x55555556
imul edi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*2]
mov eax, edi
sub eax, edx
jne 0x408adf
lea edx, [ecx + 1]
cmp edx, ebx
jae 0x408add
mov eax, dword [esp + 0x1c]
mov byte [ecx + eax], 0x2c
inc dword [esi]
mov edx, dword [esp + 0x1c]
test edi, edi
jg 0x408a97
cmp dword [esp + 0x4c], 0
je 0x408afd
mov eax, dword [esi]
lea ecx, [eax + 1]
cmp ecx, ebx
jae 0x408afb
mov byte [eax + edx], 0x2e
inc dword [esi]
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jle 0x408b19
mov eax, dword [esi]
lea edi, [eax + 1]
cmp edi, ebx
jae 0x408b12
mov byte [eax + edx], 0x30
inc dword [esi]
dec ecx
test ecx, ecx
jg 0x408b05
mov edi, dword [esp + 0x48]
mov ebp, dword [esp + 0x28]
cmp edi, ebp
jle 0x408b3f
mov eax, dword [esi]
lea ecx, [eax + 1]
dec edi
cmp ecx, ebx
jae 0x408b39
mov cl, byte [esp + edi + 0xf0]
mov byte [eax + edx], cl
inc dword [esi]
cmp edi, ebp
jg 0x408b25
mov edi, dword [esp + 0x44]
test edi, edi
jle 0x408b5e
mov eax, dword [esi]
lea ecx, [eax + 1]
dec edi
cmp ecx, ebx
jae 0x408b58
mov cl, byte [esp + edi + 0x24]
mov byte [eax + edx], cl
inc dword [esi]
test edi, edi
jg 0x408b47
cmp dword [esp + 0x18], 0
jge 0x408b84
mov ecx, dword [esp + 0x18]
neg ecx
jmp 0x408b70
mov eax, dword [esi]
lea edi, [eax + 1]
cmp edi, ebx
jae 0x408b7d
mov byte [eax + edx], 0x20
inc dword [esi]
sub ecx, 1
jne 0x408b70
mov ecx, dword [esp + 0x11c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0040a326
add esp, 0x114
ret