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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x204
fldz
push ebx
push esi
fld st(0)
mov esi, dword [ebp + 8]
fst qword [esp + 0xc]
movsx eax, byte [esi]
xor ecx, ecx
push edi
xor edi, edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x18], esi
cmp eax, 0x2d
ja case.default.0x41f5fc
movzx eax, byte [eax + 0x420528]
jmp dword [eax*4 + 0x420514]
movsx eax, byte [esi + 1]
inc esi
cmp eax, 0x2d
jbe 0x41f5f5
mov dword [esp + 0x18], esi
xor ecx, ecx
mov al, byte [esi]
cmp al, 0x30
jne 0x41f637
mov dword [esp + 0x3c], 1
inc esi
cmp byte [esi], 0x30
je 0x41f621
mov al, byte [esi]
mov dword [esp + 0x18], esi
test al, al
je 0x4204f9
xor ecx, ecx
movsx eax, al
xor edx, edx
mov ebx, esi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], edx
cmp eax, 0x30
jl 0x41f6b4
cmp eax, 0x39
jg 0x41f6ac
cmp edx, 9
jge 0x41f689
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2 - 0x30]
mov dword [esp + 0x24], ecx
jmp 0x41f6a1
mov dword [esp + 0x58], 1
mov dword [esp + 0x18], esi
inc esi
mov dword [esp + 0x18], esi
cmp byte [esi], cl
je 0x41f9a8
jmp 0x41f611
cmp edx, 0x10
jge 0x41f6a1
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2 - 0x30]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x20], eax
movsx eax, byte [esi + 1]
inc esi
inc edx
cmp eax, 0x30
jge 0x41f657
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], esi
mov ecx, esi
sub ecx, ebx
mov dword [esp + 0x30], edx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x5c], ecx
cmp eax, 0x2e
jne 0x41f7ba
movsx eax, byte [esi + 1]
inc esi
mov ecx, esi
sub ecx, ebx
mov dword [esp + 0x60], ecx
sub ecx, dword [esp + 0x5c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x64], ecx
test edx, edx
jne 0x41f71e
cmp eax, 0x30
jne 0x41f702
movsx eax, byte [esi + 1]
inc esi
inc edi
cmp eax, 0x30
je 0x41f6ef
mov dword [esp + 0x18], esi
mov dword [esp + 0x2c], edi
lea ecx, [eax - 0x31]
cmp ecx, 8
ja 0x41f7ba
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], edi
mov dword [esp + 0x44], esi
xor edi, edi
jmp 0x41f72e
mov ebx, dword [esp + 0x24]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x41f7ba
inc edi
sub eax, 0x30
mov dword [esp + 0x2c], edi
je 0x41f7ac
add dword [esp + 0x28], edi
cmp edi, 1
jle 0x41f76c
lea ecx, [edi - 1]
mov edi, edx
inc edx
cmp edi, 9
jge 0x41f753
lea ebx, [ebx + ebx*4]
add ebx, ebx
jmp 0x41f765
cmp edx, 0x10
jg 0x41f765
mov edi, dword [esp + 0x20]
lea edi, [edi + edi*4]
add edi, edi
mov dword [esp + 0x20], edi
dec ecx
jne 0x41f744
mov dword [esp + 0x24], ebx
mov ecx, edx
inc edx
mov dword [esp + 0x1c], edx
cmp ecx, 9
jge 0x41f793
lea ecx, [ebx + ebx*4]
xor edi, edi
lea ebx, [eax + ecx*2]
movsx eax, byte [esi + 1]
inc esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], esi
jmp 0x41f722
cmp edx, 0x10
jg 0x41f7a6
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov dword [esp + 0x20], eax
xor edi, edi
mov dword [esp + 0x2c], edi
movsx eax, byte [esi + 1]
inc esi
mov dword [esp + 0x18], esi
jmp 0x41f722
xor ebx, ebx
cmp eax, 0x65
je 0x41f7ce
cmp eax, 0x45
jne 0x41f883
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x41f7e0
test edi, edi
jne 0x41f7e0
cmp dword [esp + 0x3c], ebx
je 0x41f9a8
movsx eax, byte [esi + 1]
mov dword [ebp + 8], esi
inc esi
mov ecx, eax
xor edx, edx
sub ecx, 0x2b
mov dword [esp + 0x18], esi
je 0x41f7fd
sub ecx, 2
jne 0x41f806
lea edx, [ecx + 1]
movsx eax, byte [esi + 1]
inc esi
mov dword [esp + 0x18], esi
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x41f87c
cmp eax, 0x30
jne 0x41f821
movsx eax, byte [esi + 1]
inc esi
cmp eax, 0x30
je 0x41f813
mov dword [esp + 0x18], esi
lea ecx, [eax - 0x31]
cmp ecx, 8
ja 0x41f878
mov edi, esi
inc esi
lea ecx, [eax - 0x30]
movsx eax, byte [esi]
mov dword [esp + 0x18], esi
cmp eax, 0x30
jl 0x41f854
cmp eax, 0x39
jg 0x41f850
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
movsx eax, byte [esi]
cmp eax, 0x30
jge 0x41f83b
mov dword [esp + 0x18], esi
mov ebx, esi
sub ebx, edi
cmp ebx, 8
jg 0x41f867
mov ebx, ecx
cmp ecx, 0x4e1f
jle 0x41f86c
mov ebx, 0x4e1f
mov edi, dword [esp + 0x2c]
test edx, edx
je 0x41f883
neg ebx
jmp 0x41f883
xor ebx, ebx
jmp 0x41f883
mov esi, dword [ebp + 8]
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x41f9ba
fstp st(1)
test edi, edi
jne 0x4204fb
cmp dword [esp + 0x3c], edi
jne 0x4204fb
cmp dword [esp + 0x64], edi
jne case.0x41f8c0.74
add eax, 0xffffffb7
cmp eax, 0x25
ja case.0x41f8c0.74
movzx edx, byte [eax + 0x420564]
jmp dword [edx*4 + 0x420558]
mov edi, 0x598488
mov eax, esi
mov edx, 0x6e
sub edi, esi
movsx ecx, byte [eax + 1]
inc eax
lea esi, [ecx - 0x41]
cmp esi, 0x19
ja 0x41f8e5
add ecx, 0x20
cmp ecx, edx
jne case.0x41f8c0.74
movsx edx, byte [edi + eax]
test edx, edx
jne 0x41f8d5
mov esi, eax
fstp st(0)
mov edi, str.inity
mov edx, 0x69
sub edi, esi
movsx ecx, byte [eax + 1]
inc eax
lea ebx, [ecx - 0x41]
cmp ebx, 0x19
ja 0x41f915
add ecx, 0x20
cmp ecx, edx
jne 0x41f926
movsx edx, byte [edi + eax]
test edx, edx
jne 0x41f905
lea esi, [eax + 1]
jmp 0x41f927
inc esi
mov dword [esp + 0x14], 0x7ff00000
mov dword [esp + 0x10], 0
fld qword [esp + 0x10]
jmp 0x4204fb
mov edi, 0x598494
mov eax, esi
mov edx, 0x61
sub edi, esi
movsx ecx, byte [eax + 1]
inc eax
lea esi, [ecx - 0x41]
cmp esi, 0x19
ja 0x41f95e
add ecx, 0x20
cmp ecx, edx
jne case.0x41f8c0.74
movsx edx, byte [edi + eax]
test edx, edx
jne 0x41f94e
cmp byte [eax + 1], 0x28
fstp st(0)
lea esi, [eax + 1]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0x7ff80000
mov dword [esp + 0x10], edx
jne 0x41f937
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x14]
push ecx
call fcn.0041f060
fld qword [esp + 0x18]
add esp, 8
mov esi, dword [esp + 0x18]
jmp 0x4204fb
mov dword [esp + 0x18], esi
fstp st(1)
mov esi, dword [ebp + 8]
mov dword [esp + 0x58], 0
jmp 0x4204fb
sub ebx, dword [esp + 0x28]
fstp st(0)
cmp dword [esp + 0x30], 0
mov dword [esp + 0x88], ebx
mov dword [esp + 0x6c], ebx
jne 0x41f9d6
mov dword [esp + 0x30], ecx
cmp ecx, 0x10
mov ecx, dword [esp + 0x1c]
jl 0x41f9e4
mov ecx, 0x10
mov edi, dword [esp + 0x24]
mov edx, edi
mov dword [esp + 0x54], edx
fild dword [esp + 0x54]
test edx, edx
jns 0x41f9fc
fadd qword [0x598a20]
fst qword [esp + 0x10]
cmp ecx, 9
jle 0x41fa24
mov eax, dword [esp + 0x20]
fmul qword [ecx*8 + 0x596d30]
fild dword [esp + 0x20]
test eax, eax
jns 0x41fa1e
fadd qword [0x598a20]
faddp st(1)
fst qword [esp + 0x10]
cmp dword [esp + 0x1c], 0xf
jg 0x41fa8f
test ebx, ebx
je 0x4204f9
jle 0x41fa6f
cmp ebx, 0x16
jg 0x41fa48
fstp st(1)
fmul qword [ebx*8 + 0x596d78]
jmp 0x4204fb
mov eax, 0xf
sub eax, dword [esp + 0x1c]
lea edx, [eax + 0x16]
cmp ebx, edx
jg 0x41fa8b
fstp st(1)
sub ebx, eax
fmul qword [eax*8 + 0x596d78]
fmul qword [ebx*8 + 0x596d78]
jmp 0x4204fb
cmp ebx, 0xffffffea
jl 0x41fa8b
lea eax, [ebx*8]
fstp st(1)
mov ecx, 0x596d78
sub ecx, eax
fdiv qword [ecx]
jmp 0x4204fb
mov edi, dword [esp + 0x24]
mov eax, ebx
sub eax, ecx
add eax, dword [esp + 0x1c]
mov dword [esp + 0x80], 0
mov edx, 0x3500000
test eax, eax
jle 0x41fb4c
mov ecx, eax
fstp st(1)
and ecx, 0xf
je 0x41fac3
fmul qword [ecx*8 + 0x596d78]
fst qword [esp + 0x10]
and eax, 0xfffffff0
je 0x41fc17
cmp eax, 0x134
jg 0x4204e7
sar eax, 4
xor ecx, ecx
cmp eax, 1
jle 0x41fafa
test al, 1
je 0x41faec
fmul qword [ecx*8 + 0x596e30]
sar eax, 1
inc ecx
cmp eax, 1
jg 0x41fae1
fstp qword [esp + 0x10]
jmp 0x41fafc
fstp st(0)
sub dword [esp + 0x14], edx
fld qword [ecx*8 + 0x596e30]
fmul qword [esp + 0x10]
fstp qword [esp + 0x10]
mov eax, dword [esp + 0x14]
and eax, 0x7ff00000
cmp eax, 0x7ca00000
ja 0x4204e9
mov edi, dword [esp + 0x24]
cmp eax, 0x7c900000
jbe 0x41fb43
mov dword [esp + 0x14], 0x7fefffff
mov dword [esp + 0x10], 0xffffffff
jmp 0x41fc19
add dword [esp + 0x14], edx
jmp 0x41fc19
jns 0x41fc15
neg eax
mov ecx, eax
and ecx, 0xf
je 0x41fb66
fdiv qword [ecx*8 + 0x596d78]
fst qword [esp + 0x10]
sar eax, 4
test eax, eax
je 0x41fc15
cmp eax, 0x20
jge 0x4204bc
test al, 0x10
je 0x41fb89
mov dword [esp + 0x80], 0x6a
test eax, eax
jle 0x41fba5
mov ecx, 0x596e58
test al, 1
je 0x41fb98
fmul qword [ecx]
sar eax, 1
add ecx, 8
test eax, eax
jg 0x41fb92
fst qword [esp + 0x10]
cmp dword [esp + 0x80], 0
je 0x41fc00
mov edx, dword [esp + 0x14]
shr edx, 0x14
and edx, 0x7ff
mov ecx, 0x6b
sub ecx, edx
test ecx, ecx
jle 0x41fc00
fstp st(0)
cmp ecx, 0x20
jl 0x41fbf3
mov dword [esp + 0x10], 0
cmp ecx, 0x35
jl 0x41fbe5
mov dword [esp + 0x14], 0x3700000
jmp 0x41fbfc
add ecx, 0xffffffe0
or eax, 0xffffffff
shl eax, cl
and dword [esp + 0x14], eax
jmp 0x41fbfc
or edx, 0xffffffff
shl edx, cl
and dword [esp + 0x10], edx
fld qword [esp + 0x10]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4204be
mov edi, dword [esp + 0x24]
jmp 0x41fc17
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], esi
cmp eax, 0x28
jle 0x41fcbe
mov eax, 0x12
mov ecx, eax
cmp esi, eax
jge 0x41fc43
mov eax, dword [esp + 0x64]
add eax, ecx
dec eax
cmp eax, dword [esp + 0x60]
jg 0x41fc55
mov edx, dword [esp + 0x5c]
cmp eax, edx
jl 0x41fc55
lea eax, [edx - 1]
mov edx, dword [esp + 0x44]
cmp byte [eax + edx], 0x30
jne 0x41fc62
dec ecx
jmp 0x41fc43
mov eax, dword [esp + 0x1c]
sub eax, ecx
add ebx, eax
mov dword [esp + 0x88], ebx
mov dword [esp + 0x1c], ecx
cmp esi, ecx
jle 0x41fc7b
mov esi, ecx
cmp ecx, 9
jge 0x41fcbe
xor edi, edi
xor eax, eax
test esi, esi
jle 0x41fc98
movsx ecx, byte [eax + edx]
inc eax
lea edi, [edi + edi*4]
lea edi, [ecx + edi*2 - 0x30]
cmp eax, esi
jl 0x41fc88
cmp eax, dword [esp + 0x1c]
jge 0x41fcbe
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x1c]
add edx, dword [esp + 0x44]
sub ecx, eax
lea esp, [esp]
lea eax, [edi + edi*4]
movsx edi, byte [edx]
inc edx
dec ecx
lea edi, [edi + eax*2 - 0x30]
jne 0x41fcb0
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
push ecx
push edi
push edx
push esi
call fcn.0041e430
mov esi, eax
add esp, 0x10
mov dword [esp + 0x8c], esi
nop
mov edi, dword [esi + 4]
call fcn.0041e240
mov ecx, dword [esi + 0x10]
lea edx, [ecx*4 + 8]
push edx
mov dword [esp + 0x30], eax
add esi, 0xc
add eax, 0xc
push esi
push eax
call fcn.0049d0d0
add esp, 0xc
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0xa0]
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.0041ee10
add esp, 0xc
push 1
mov dword [esp + 0x2c], eax
call fcn.0041e590
add esp, 4
mov dword [esp + 0x20], eax
test ebx, ebx
js 0x41fd43
xor ecx, ecx
xor esi, esi
mov dword [esp + 0x3c], ebx
mov edi, ebx
jmp 0x41fd4f
mov ecx, ebx
neg ecx
xor edi, edi
mov esi, ecx
mov dword [esp + 0x3c], edi
mov eax, dword [esp + 0x9c]
test eax, eax
js 0x41fd5e
add esi, eax
jmp 0x41fd60
sub edi, eax
sub eax, dword [esp + 0x80]
mov edx, dword [esp + 0x54]
lea ebx, [edx + eax - 1]
mov dword [esp + 0x30], esi
cmp ebx, 0xfffffc02
jge 0x41fd82
add eax, 0x433
jmp 0x41fd89
mov eax, 0x36
sub eax, edx
add esi, eax
add eax, dword [esp + 0x80]
add edi, eax
mov eax, esi
cmp esi, edi
jl 0x41fd9c
mov eax, edi
mov ebx, dword [esp + 0x30]
cmp eax, ebx
jle 0x41fda6
mov eax, ebx
test eax, eax
jle 0x41fdb4
sub esi, eax
sub edi, eax
sub ebx, eax
mov dword [esp + 0x30], ebx
test ecx, ecx
jle 0x41febf
mov eax, dword [esp + 0x20]
push ecx
push eax
call fcn.0041e750
mov ebx, dword [esp + 0x30]
push ebx
mov dword [esp + 0x2c], eax
call fcn.0041e640
add esp, 0xc
mov dword [esp + 0x28], eax
test ebx, ebx
je 0x41feb3
cmp dword [ebx + 4], 7
jle 0x41fdf8
push ebx
call fcn.0049d8ca
add esp, 4
jmp 0x41feb3
test byte [esp + 0x40], 1
je 0x41fe10
and dword [esp + 0x40], 0xfffffffe
lea ecx, [esp + 0xb0]
call fcn.00406f50
test dword [0x623d38], 0xfffffffe
jne 0x41fe65
push 0
push 1
push 0x623d38
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
test eax, eax
je 0x41fe4b
cmp dword [0x623d38], 1
jne 0x41fe65
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x623d38], 1
je 0x41fe38
jmp 0x41fe65
push 0x7d0
push 0x623d3c
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
mov dword [0x623d38], 0x623d3c
mov eax, dword [0x623d38]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test dword [esp + 0x40], 0x200
mov eax, dword [ebx + 4]
mov ecx, dword [eax*4 + 0x61d578]
mov dword [ebx], ecx
mov dword [eax*4 + 0x61d578], ebx
je 0x41fea2
and dword [esp + 0x40], 0xfffffdff
lea ecx, [esp + 0x160]
call fcn.00406f50
mov ecx, 0x623d38
call fcn.00420ec0
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x28], edx
test esi, esi
jle 0x41fed5
mov eax, dword [esp + 0x28]
push esi
push eax
call fcn.0041e900
add esp, 8
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x3c]
test eax, eax
jle 0x41feef
mov ecx, dword [esp + 0x2c]
push eax
push ecx
call fcn.0041e750
add esp, 8
mov dword [esp + 0x2c], eax
test edi, edi
jle 0x41ff05
mov edx, dword [esp + 0x2c]
push edi
push edx
call fcn.0041e900
add esp, 8
mov dword [esp + 0x2c], eax
test ebx, ebx
jle 0x41ff1b
mov eax, dword [esp + 0x20]
push ebx
push eax
call fcn.0041e900
add esp, 8
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push ecx
call fcn.0041eb00
mov edi, eax
mov ebx, dword [edi + 0xc]
mov eax, dword [esp + 0x24]
add esp, 4
mov edx, edi
mov dword [esp + 0x68], ebx
mov dword [edi + 0xc], 0
call fcn.0041eab0
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x74], ecx
jle 0x41ff59
test eax, eax
jle 0x420220
test eax, eax
js 0x42022e
je 0x42029a
mov esi, dword [esp + 0x20]
call fcn.0041ef90
fld qword [0x598978]
mov ecx, dword [esp + 0x14]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x4200a0
test ebx, ebx
je 0x41ff93
fstp st(0)
fld1
fld st(0)
jmp 0x41ffc6
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x42006c
test ecx, 0xfffff
jne 0x420091
fld1
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x420061
fstp st(0)
fld qword [0x598998]
fld st(0)
fchs
mov edx, ecx
and edx, 0x7ff00000
cmp edx, 0x7fe00000
jne 0x4200c4
fld qword [esp + 0x10]
sub ecx, 0x3500000
mov dword [esp + 0x14], ecx
fstp qword [esp + 0x90]
and ecx, 0x7ff00000
sub ecx, 0x3400000
mov dword [esp + 0xac], ecx
mov dword [esp + 0xa8], 0
fmul qword [esp + 0xa8]
fadd qword [esp + 0x10]
fstp qword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov eax, esi
and eax, 0x7ff00000
cmp eax, 0x7ca00000
jb 0x4200b5
mov eax, 0x7fefffff
fstp st(0)
cmp dword [esp + 0x94], eax
jne 0x420050
cmp dword [esp + 0x90], 0xffffffff
je 0x4204d3
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0xffffffff
jmp 0x4201eb
fmul qword [0x598998]
jmp 0x41ffc2
fstp st(0)
cmp eax, 1
jne 0x420093
test ecx, ecx
jne 0x420093
mov ecx, dword [esp + 0x74]
cmp ecx, dword [esp + 0x1c]
jle 0x4204a1
mov dword [esp + 0x84], eax
jmp 0x4203e8
fstp st(0)
fld1
fld qword [0x5989d0]
jmp 0x41ffc6
fmul qword [0x598998]
test ebx, ebx
je 0x41ffc2
fld st(0)
jmp 0x41ffc6
add esi, 0x3500000
mov dword [esp + 0x14], esi
jmp 0x42016e
cmp dword [esp + 0x80], 0
je 0x42014c
cmp edx, 0x6a00000
ja 0x42014c
fld qword [0x598a40]
fcomp st(2)
fnstsw ax
test ah, 1
jne 0x420130
fnstcw word [esp + 0x24]
movzx eax, word [esp + 0x24]
fstp st(0)
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esp + 0x30]
mov eax, dword [esp + 0x30]
fldcw word [esp + 0x24]
test eax, eax
jne 0x420116
mov eax, 1
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
test eax, eax
jns 0x420128
fadd qword [0x598a20]
fld st(0)
test ebx, ebx
jne 0x420130
fchs
mov ecx, 0x6b00000
fstp qword [esp + 0xa0]
sub ecx, edx
add dword [esp + 0xa4], ecx
fld qword [esp + 0xa0]
lea eax, [edx - 0x3400000]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], 0
fmul qword [esp + 0x48]
fadd qword [esp + 0x10]
fstp qword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x74]
cmp ecx, dword [esp + 0x1c]
jne 0x4201e9
cmp dword [esp + 0x80], 0
jne 0x4201e9
mov eax, esi
and eax, 0x7ff00000
cmp edx, eax
jne 0x4201e9
fld st(0)
call fcn.004a2260
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fsubp st(1)
test ebx, ebx
jne 0x4201c3
cmp dword [esp + 0x10], ebx
jne 0x4201c3
test esi, 0xfffff
jne 0x4201c3
fcomp qword [0x598a38]
fnstsw ax
test ah, 5
jnp 0x4203e8
jmp 0x4201eb
fld qword [0x598a30]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x4203e6
fcomp qword [0x598a28]
fnstsw ax
test ah, 0x41
je 0x4203e8
jmp 0x4201eb
fstp st(0)
mov esi, dword [esp + 0x28]
call fcn.0041e300
mov esi, dword [esp + 0x2c]
call fcn.0041e300
mov esi, dword [esp + 0x20]
call fcn.0041e300
mov esi, edi
call fcn.0041e300
mov esi, dword [esp + 0x8c]
mov ebx, dword [esp + 0x88]
jmp 0x41fce0
test ebx, ebx
jne 0x4203e8
mov dword [esp + 0x74], ecx
jmp 0x420236
test ebx, ebx
jne 0x4203e8
cmp dword [esp + 0x10], 0
jne 0x4203e8
mov esi, dword [esp + 0x14]
test esi, 0xfffff
jne 0x4203e8
mov ecx, esi
and ecx, 0x7ff00000
cmp ecx, 0x6b00000
jbe 0x4203e8
cmp dword [edi + 0x14], 0
jne 0x420275
cmp dword [edi + 0x10], 1
jle 0x4203e8
push 1
push edi
call fcn.0041e900
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 8
mov edx, edi
call fcn.0041eab0
test eax, eax
jg 0x420316
jmp 0x4203e8
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
test ebx, ebx
je 0x42030a
mov eax, esi
and eax, 0xfffff
cmp eax, 0xfffff
jne 0x420376
xor ebx, ebx
cmp dword [esp + 0x80], ebx
je 0x4202e2
mov eax, esi
and eax, 0x7ff00000
cmp eax, 0x6a00000
ja 0x4202e2
shr eax, 0x14
mov ecx, 0x6b
sub ecx, eax
or eax, 0xffffffff
shl eax, cl
jmp 0x4202e5
or eax, 0xffffffff
cmp edx, eax
jne 0x420372
and esi, 0x7ff00000
add esi, 0x100000
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x68], ebx
jmp 0x4203e8
test esi, 0xfffff
jne 0x420376
test edx, edx
jne 0x420376
cmp dword [esp + 0x80], 0
je 0x420357
mov eax, esi
and eax, 0x7ff00000
cmp eax, 0x6b00000
jg 0x420357
cmp eax, 0x3700000
jg 0x4203e8
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x74], ecx
jle 0x4204a1
mov dword [esp + 0x84], 1
jmp 0x4203e8
and esi, 0x7ff00000
dec esi
or esi, 0xfffff
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], 0xffffffff
jmp 0x4203e8
mov ebx, dword [esp + 0x68]
test dl, 1
je 0x4203e8
and esi, 0x7ff00000
xor eax, eax
sub esi, 0x3400000
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], esi
cmp ebx, eax
je 0x4203ae
fld qword [esp + 0x48]
mov eax, 1
fadd qword [esp + 0x10]
sub eax, ebx
mov dword [esp + 0x68], eax
fstp qword [esp + 0x10]
jmp 0x4203e8
fld qword [esp + 0x10]
fsub qword [esp + 0x48]
fst qword [esp + 0x10]
fldz
fld st(0)
fucomp st(2)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x42048f
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0x74], edx
jle 0x4204a3
mov dword [esp + 0x84], 1
fstp st(0)
mov esi, dword [esp + 0x28]
call fcn.0041e300
mov esi, dword [esp + 0x2c]
call fcn.0041e300
mov esi, dword [esp + 0x20]
call fcn.0041e300
mov esi, dword [esp + 0x8c]
call fcn.0041e300
mov esi, edi
call fcn.0041e300
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0x74], edx
jle 0x420437
mov ecx, dword [esp + 0x44]
lea eax, [esp + 0x5c]
push eax
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.0041f310
add esp, 0xc
cmp dword [esp + 0x80], 0
fld qword [esp + 0x10]
je 0x41f99b
mov dword [esp + 0x94], 0x39500000
mov dword [esp + 0x90], 0
fmul qword [esp + 0x90]
fst qword [esp + 0x10]
test dword [esp + 0x14], 0x7ff00000
jne 0x41f99b
fstp st(0)
call fcn.004a0675
mov esi, dword [esp + 0x18]
fld qword [esp + 0x10]
mov dword [eax], 0x22
jmp 0x4204fb
mov eax, 1
fstp st(0)
sub eax, ebx
mov dword [esp + 0x68], eax
jmp 0x4203e8
fldz
mov esi, dword [esp + 0x18]
fstp qword [esp + 0x10]
call fcn.004a0675
fld qword [esp + 0x10]
mov dword [eax], 0x22
jmp 0x4204fb
fstp st(0)
fstp qword [esp + 0x10]
call fcn.004a0675
fld qword [esp + 0x10]
mov dword [eax], 0x22
jmp 0x4204fb
mov esi, dword [esp + 0x18]
call fcn.004a0675
mov dword [eax], 0x22
jmp 0x41f927
fstp st(0)
call fcn.004a0675
mov dword [eax], 0x22
jmp 0x41f927
fstp st(1)
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x420504
mov dword [eax], esi
cmp dword [esp + 0x58], 0
je 0x42050d
fchs
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret