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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1fc
fldz
push ebx
push esi
fld st(0)
mov esi, dword [ebp + 8]
fst qword [esp + 0xc]
movsx eax, byte [esi]
xor ecx, ecx
xor ebx, ebx
push edi
mov dword [esp + 0x58], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x18], esi
cmp eax, 0x2d
ja case.default.0x41d98c
movzx eax, byte [eax + 0x41e940]
jmp dword [eax*4 + 0x41e92c]
movsx eax, byte [esi + 1]
inc esi
cmp eax, 0x2d
jbe 0x41d985
mov dword [esp + 0x18], esi
xor ecx, ecx
mov al, byte [esi]
cmp al, 0x30
jne 0x41d9c7
mov dword [esp + 0x38], 1
inc esi
cmp byte [esi], 0x30
je 0x41d9b1
mov al, byte [esi]
mov dword [esp + 0x18], esi
test al, al
je 0x41e90f
xor ecx, ecx
movsx eax, al
xor edi, edi
xor edx, edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
cmp eax, 0x30
jl 0x41da3c
cmp eax, 0x39
jg 0x41da2c
cmp edx, 9
jge 0x41da15
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2 - 0x30]
jmp 0x41da21
mov dword [esp + 0x50], 1
mov dword [esp + 0x18], esi
inc esi
mov dword [esp + 0x18], esi
cmp byte [esi], cl
je 0x41dd5f
jmp 0x41d9a1
cmp edx, 0x10
jge 0x41da21
lea edi, [edi + edi*4]
lea edi, [eax + edi*2 - 0x30]
movsx eax, byte [esi + 1]
inc esi
inc edx
cmp eax, 0x30
jge 0x41d9e7
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x30], edx
mov dword [esp + 0x18], esi
mov edi, dword [esp + 0x40]
mov ecx, esi
sub ecx, edi
mov dword [esp + 0x24], edx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x5c], ecx
cmp eax, 0x2e
jne 0x41db41
movsx eax, byte [esi + 1]
inc esi
mov ecx, esi
sub ecx, edi
mov dword [esp + 0x60], ecx
sub ecx, dword [esp + 0x5c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x64], ecx
test edx, edx
jne 0x41daa6
cmp eax, 0x30
jne 0x41da8e
movsx eax, byte [esi + 1]
inc esi
inc ebx
cmp eax, 0x30
je 0x41da7b
mov dword [esp + 0x18], esi
mov dword [esp + 0x34], ebx
lea ecx, [eax - 0x31]
cmp ecx, 8
ja 0x41db41
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x40], esi
xor ebx, ebx
jmp 0x41dab2
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x41db41
inc ebx
sub eax, 0x30
mov dword [esp + 0x34], ebx
je 0x41db33
add dword [esp + 0x2c], ebx
mov edi, dword [esp + 0x1c]
cmp ebx, 1
jle 0x41daf4
lea ecx, [ebx - 1]
mov ebx, edx
inc edx
cmp ebx, 9
jge 0x41dadb
lea edi, [edi + edi*4]
add edi, edi
jmp 0x41daed
cmp edx, 0x10
jg 0x41daed
mov ebx, dword [esp + 0x20]
lea ebx, [ebx + ebx*4]
add ebx, ebx
mov dword [esp + 0x20], ebx
dec ecx
jne 0x41dacc
mov dword [esp + 0x1c], edi
mov ecx, edx
inc edx
mov dword [esp + 0x30], edx
cmp ecx, 9
jge 0x41db1a
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*2]
xor ebx, ebx
inc esi
mov dword [esp + 0x1c], eax
movsx eax, byte [esi]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x18], esi
jmp 0x41daa6
cmp edx, 0x10
jg 0x41db2d
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov dword [esp + 0x20], eax
xor ebx, ebx
mov dword [esp + 0x34], ebx
movsx eax, byte [esi + 1]
inc esi
mov dword [esp + 0x18], esi
jmp 0x41daa6
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x28], 0
cmp eax, 0x65
je 0x41db5b
cmp eax, 0x45
jne 0x41dc3e
test edx, edx
jne 0x41db6d
test ebx, ebx
jne 0x41db6d
cmp dword [esp + 0x38], ebx
je 0x41dd5f
movsx eax, byte [esi + 1]
mov edi, esi
inc esi
mov ecx, eax
sub ecx, 0x2b
mov dword [ebp + 8], edi
mov dword [esp + 0x44], 0
mov dword [esp + 0x18], esi
je 0x41db97
sub ecx, 2
jne 0x41dba0
mov dword [esp + 0x44], 1
movsx eax, byte [esi + 1]
inc esi
mov dword [esp + 0x18], esi
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x41dc34
cmp eax, 0x30
jne 0x41dbbf
movsx eax, byte [esi + 1]
inc esi
cmp eax, 0x30
je 0x41dbb1
mov dword [esp + 0x18], esi
lea ecx, [eax - 0x31]
cmp ecx, 8
ja 0x41dc2a
mov edi, esi
inc esi
lea ecx, [eax - 0x30]
movsx eax, byte [esi]
mov dword [esp + 0x18], esi
cmp eax, 0x30
jl 0x41dbf2
cmp eax, 0x39
jg 0x41dbee
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
movsx eax, byte [esi]
cmp eax, 0x30
jge 0x41dbd9
mov dword [esp + 0x18], esi
mov ebx, esi
sub ebx, edi
cmp ebx, 8
jg 0x41dc07
mov dword [esp + 0x28], ecx
cmp ecx, 0x4e1f
jle 0x41dc0f
mov dword [esp + 0x28], 0x4e1f
cmp dword [esp + 0x44], 0
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x1c]
je 0x41dc3e
mov ecx, dword [esp + 0x28]
neg ecx
mov dword [esp + 0x28], ecx
jmp 0x41dc3e
mov dword [esp + 0x28], 0
jmp 0x41dc3a
mov esi, edi
mov dword [esp + 0x18], esi
mov edi, dword [esp + 0x1c]
test edx, edx
jne 0x41dd71
fstp st(1)
test ebx, ebx
jne 0x41e911
cmp dword [esp + 0x38], ebx
jne 0x41e911
cmp dword [esp + 0x64], ebx
jne case.0x41dc77.74
add eax, 0xffffffb7
cmp eax, 0x25
ja case.0x41dc77.74
movzx edx, byte [eax + 0x41e97c]
jmp dword [edx*4 + 0x41e970]
mov edi, 0x49c4f8
mov eax, esi
mov edx, 0x6e
sub edi, esi
movsx ecx, byte [eax + 1]
inc eax
lea esi, [ecx - 0x41]
cmp esi, 0x19
ja 0x41dc9c
add ecx, 0x20
cmp ecx, edx
jne case.0x41dc77.74
movsx edx, byte [edi + eax]
test edx, edx
jne 0x41dc8c
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 0x41dccc
add ecx, 0x20
cmp ecx, edx
jne 0x41dcdd
movsx edx, byte [edi + eax]
test edx, edx
jne 0x41dcbc
lea esi, [eax + 1]
jmp 0x41dcde
inc esi
mov dword [esp + 0x14], 0x7ff00000
mov dword [esp + 0x10], 0
fld qword [esp + 0x10]
jmp 0x41e911
mov edi, 0x49c504
mov eax, esi
mov edx, 0x61
sub edi, esi
movsx ecx, byte [eax + 1]
inc eax
lea esi, [ecx - 0x41]
cmp esi, 0x19
ja 0x41dd15
add ecx, 0x20
cmp ecx, edx
jne case.0x41dc77.74
movsx edx, byte [edi + eax]
test edx, edx
jne 0x41dd05
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 0x41dcee
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x14]
push ecx
call fcn.0041d310
fld qword [esp + 0x18]
add esp, 8
mov esi, dword [esp + 0x18]
jmp 0x41e911
mov dword [esp + 0x18], esi
fstp st(1)
mov esi, dword [ebp + 8]
mov dword [esp + 0x50], 0
jmp 0x41e911
mov eax, dword [esp + 0x28]
fstp st(0)
sub eax, dword [esp + 0x2c]
cmp dword [esp + 0x24], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x6c], eax
jne 0x41dd8e
mov dword [esp + 0x24], edx
mov ecx, edx
cmp edx, 0x10
jl 0x41dd9a
mov ecx, 0x10
mov eax, edi
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
test eax, eax
jns 0x41ddae
fadd qword [0x49c7b0]
fst qword [esp + 0x10]
cmp ecx, 9
jle 0x41ddd6
mov eax, dword [esp + 0x20]
fmul qword [ecx*8 + 0x49b0a8]
fild dword [esp + 0x20]
test eax, eax
jns 0x41ddd0
fadd qword [0x49c7b0]
faddp st(1)
fst qword [esp + 0x10]
mov ebx, dword [esp + 0x28]
cmp edx, 0xf
jg 0x41de41
test ebx, ebx
je 0x41e90f
jle 0x41de21
cmp ebx, 0x16
jg 0x41ddfc
fstp st(1)
fmul qword [ebx*8 + 0x49b0f0]
jmp 0x41e911
mov eax, 0xf
sub eax, edx
lea edi, [eax + 0x16]
cmp ebx, edi
jg 0x41de3d
fstp st(1)
sub ebx, eax
fmul qword [eax*8 + 0x49b0f0]
fmul qword [ebx*8 + 0x49b0f0]
jmp 0x41e911
cmp ebx, 0xffffffea
jl 0x41de41
lea ecx, [ebx*8]
fstp st(1)
mov edx, 0x49b0f0
sub edx, ecx
fdiv qword [edx]
jmp 0x41e911
mov edi, dword [esp + 0x1c]
mov eax, ebx
sub eax, ecx
add eax, edx
mov dword [esp + 0x80], 0
test eax, eax
jle 0x41def8
mov ecx, eax
fstp st(1)
and ecx, 0xf
je 0x41de6e
fmul qword [ecx*8 + 0x49b0f0]
fst qword [esp + 0x10]
and eax, 0xfffffff0
je 0x41e009
cmp eax, 0x134
jg 0x41e8fd
sar eax, 4
xor ecx, ecx
cmp eax, 1
jle 0x41dea5
test al, 1
je 0x41de97
fmul qword [ecx*8 + 0x49b1a8]
sar eax, 1
inc ecx
cmp eax, 1
jg 0x41de8c
fstp qword [esp + 0x10]
jmp 0x41dea7
fstp st(0)
fld qword [ecx*8 + 0x49b1a8]
mov ebx, 0x3500000
sub dword [esp + 0x14], ebx
fmul qword [esp + 0x10]
fstp qword [esp + 0x10]
mov eax, dword [esp + 0x14]
and eax, 0x7ff00000
cmp eax, 0x7ca00000
ja 0x41e8ff
cmp eax, 0x7c900000
jbe 0x41deef
mov dword [esp + 0x14], 0x7fefffff
mov dword [esp + 0x10], 0xffffffff
jmp 0x41dfc0
add dword [esp + 0x14], ebx
jmp 0x41dfc0
jns 0x41e007
neg eax
mov ecx, eax
and ecx, 0xf
je 0x41df12
fdiv qword [ecx*8 + 0x49b0f0]
fst qword [esp + 0x10]
sar eax, 4
test eax, eax
je 0x41e007
cmp eax, 0x20
jge 0x41e8d2
test al, 0x10
je 0x41df35
mov dword [esp + 0x80], 0x6a
test eax, eax
jle 0x41df51
mov ecx, 0x49b1d0
test al, 1
je 0x41df44
fmul qword [ecx]
sar eax, 1
add ecx, 8
test eax, eax
jg 0x41df3e
fst qword [esp + 0x10]
cmp dword [esp + 0x80], 0
je 0x41dfab
mov eax, dword [esp + 0x14]
shr eax, 0x14
and eax, 0x7ff
mov ecx, 0x6b
sub ecx, eax
test ecx, ecx
jle 0x41dfab
fstp st(0)
cmp ecx, 0x20
jl 0x41df9e
mov dword [esp + 0x10], 0
cmp ecx, 0x35
jl 0x41df90
mov dword [esp + 0x14], 0x3700000
jmp 0x41dfa7
add ecx, 0xffffffe0
or edx, 0xffffffff
shl edx, cl
and dword [esp + 0x14], edx
jmp 0x41dfa7
or eax, 0xffffffff
shl eax, cl
and dword [esp + 0x10], eax
fld qword [esp + 0x10]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jnp 0x41e8d4
mov edx, dword [esp + 0x30]
fstp st(0)
mov esi, dword [esp + 0x24]
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], esi
cmp edx, 0x28
jle 0x41e068
mov eax, 0x12
mov ecx, eax
cmp esi, eax
jge 0x41dfe6
mov eax, dword [esp + 0x64]
add eax, ecx
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x5c]
mov edi, edi
dec eax
cmp eax, dword [esp + 0x60]
jg 0x41dffe
cmp eax, ebx
jl 0x41dffe
lea eax, [ebx - 1]
cmp byte [eax + esi], 0x30
jne 0x41e00d
dec ecx
jmp 0x41dff0
fstp st(0)
fstp st(0)
jmp 0x41dfc0
sub edx, ecx
add dword [esp + 0x28], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], ecx
cmp edx, ecx
jle 0x41e025
mov edx, ecx
mov dword [esp + 0x24], edx
cmp ecx, 9
jge 0x41e062
xor edi, edi
xor eax, eax
test edx, edx
jle 0x41e042
movsx ecx, byte [eax + esi]
inc eax
lea edi, [edi + edi*4]
lea edi, [ecx + edi*2 - 0x30]
cmp eax, edx
jl 0x41e032
cmp eax, dword [esp + 0x30]
jge 0x41e062
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x30]
add edx, esi
sub ecx, eax
lea eax, [edi + edi*4]
movsx edi, byte [edx]
inc edx
dec ecx
lea edi, [edi + eax*2 - 0x30]
jne 0x41e054
mov edx, dword [esp + 0x30]
jmp 0x41e06c
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x24]
push ecx
push edi
push edx
mov ecx, esi
call fcn.0041c6d0
mov esi, eax
lea edx, [esi + 0xc]
add esp, 0xc
mov dword [esp + 0x44], esi
mov dword [esp + 0x9c], edx
mov ebx, dword [esi + 4]
call fcn.0041c4f0
mov ecx, dword [esi + 0x10]
lea edx, [ecx*4 + 8]
mov ecx, dword [esp + 0x9c]
push edx
mov dword [esp + 0x38], eax
push ecx
add eax, 0xc
push eax
call fcn.0046d7f0
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0x24]
call fcn.0041d0c0
push 1
mov dword [esp + 0x3c], eax
call fcn.0041c830
add esp, 0x18
cmp dword [esp + 0x28], 0
mov dword [esp + 0x20], eax
jl 0x41e0f2
mov eax, dword [esp + 0x28]
xor ecx, ecx
xor edi, edi
jmp 0x41e0fc
mov ecx, dword [esp + 0x28]
neg ecx
mov edi, ecx
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x98]
test eax, eax
js 0x41e113
add edi, eax
jmp 0x41e117
sub dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x80]
mov edx, dword [esp + 0x54]
sub eax, ebx
lea esi, [edx + eax - 1]
mov dword [esp + 0x2c], edi
cmp esi, 0xfffffc02
jge 0x41e13b
add eax, 0x433
jmp 0x41e142
mov eax, 0x36
sub eax, edx
mov esi, dword [esp + 0x1c]
add edi, eax
add eax, ebx
add esi, eax
mov dword [esp + 0x1c], esi
mov eax, edi
cmp edi, esi
jl 0x41e158
mov eax, esi
mov edx, dword [esp + 0x2c]
cmp eax, edx
jle 0x41e162
mov eax, edx
test eax, eax
jle 0x41e174
sub esi, eax
sub edi, eax
sub edx, eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x2c], edx
test ecx, ecx
jle 0x41e297
push ecx
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0041c9f0
mov esi, dword [esp + 0x2c]
mov ebx, eax
push esi
mov dword [esp + 0x2c], ebx
call fcn.0041c8e0
add esp, 0xc
mov dword [esp + 0x24], eax
test esi, esi
je 0x41e289
cmp dword [esi + 4], 7
jle 0x41e1c6
push esi
call fcn.0046e15a
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
add esp, 4
mov dword [esp + 0x24], eax
jmp 0x41e29b
mov ebx, dword [esp + 0x58]
test bl, 1
je 0x41e1e2
and ebx, 0xfffffffe
lea ecx, [esp + 0xa8]
mov dword [esp + 0x58], ebx
call fcn.0040ae20
test dword [0x56e404], 0xfffffffe
jne 0x41e23d
push 0
push 1
push 0x56e404
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
test eax, eax
je 0x41e223
cmp dword [0x56e404], 1
jne 0x41e23d
lea ebx, [ebx]
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x56e404], 1
je 0x41e210
jmp 0x41e23d
push 0x7d0
push 0x56e408
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
mov dword [0x56e404], 0x56e408
mov eax, dword [0x56e404]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 4]
mov edx, dword [eax*4 + 0x56e0fc]
mov dword [esi], edx
mov dword [eax*4 + 0x56e0fc], esi
test bl, 0x20
je 0x41e274
and ebx, 0xffffffdf
lea ecx, [esp + 0x158]
mov dword [esp + 0x58], ebx
call fcn.0040ae20
mov esi, 0x56e404
call fcn.0041f460
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
jmp 0x41e29b
mov ebx, dword [esp + 0x20]
test edi, edi
jle 0x41e2b1
mov ecx, dword [esp + 0x24]
push edi
push ecx
call fcn.0041cbb0
add esp, 8
mov dword [esp + 0x24], eax
cmp dword [esp + 0x38], 0
jle 0x41e2d2
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
push edx
push eax
call fcn.0041c9f0
mov edi, eax
add esp, 8
mov dword [esp + 0x34], edi
jmp 0x41e2d6
mov edi, dword [esp + 0x34]
test esi, esi
jle 0x41e2ea
push esi
push edi
call fcn.0041cbb0
mov edi, eax
add esp, 8
mov dword [esp + 0x34], edi
cmp dword [esp + 0x2c], 0
jle 0x41e305
mov ecx, dword [esp + 0x2c]
push ecx
push ebx
call fcn.0041cbb0
mov ebx, eax
add esp, 8
mov dword [esp + 0x20], ebx
mov ecx, dword [esp + 0x24]
mov eax, edi
call fcn.0041cdc0
mov edx, eax
mov esi, dword [edx + 0xc]
mov eax, dword [edx + 0x10]
mov dword [edx + 0xc], 0
mov ecx, dword [ebx + 0x10]
sub eax, ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x68], esi
jne 0x41e362
add edx, 0x14
mov edi, dword [edx + ecx*4 - 4]
cmp edi, dword [ebx + ecx*4 + 0x10]
lea eax, [edx + ecx*4 - 4]
lea ecx, [ebx + ecx*4 + 0x10]
jne 0x41e354
cmp eax, edx
jbe 0x41e360
mov edi, dword [eax - 4]
sub eax, 4
sub ecx, 4
cmp edi, dword [ecx]
je 0x41e343
mov edx, dword [eax]
cmp edx, dword [ecx]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x41e362
xor eax, eax
mov edi, dword [esp + 0x30]
cmp dword [esp + 0x74], edi
jle 0x41e374
test eax, eax
jle 0x41e637
test eax, eax
js 0x41e645
je 0x41e6b7
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
mov edi, ebx
call fcn.0041d240
fld qword [0x49c7e0]
mov ecx, dword [esp + 0x14]
fcomp st(1)
mov edi, dword [esp + 0x68]
fnstsw ax
test ah, 1
jne 0x41e4c5
test edi, edi
je 0x41e3b8
fstp st(0)
fld1
fld st(0)
jmp 0x41e3eb
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x41e491
test ecx, 0xfffff
jne 0x41e4b6
fld1
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x41e486
fstp st(0)
fld qword [0x49c780]
fld st(0)
fchs
mov edx, ecx
and edx, 0x7ff00000
cmp edx, 0x7fe00000
jne 0x41e4e9
fld qword [esp + 0x10]
sub ecx, 0x3500000
mov dword [esp + 0x14], ecx
fstp qword [esp + 0x88]
and ecx, 0x7ff00000
sub ecx, 0x3400000
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa0], 0
fmul qword [esp + 0xa0]
fadd qword [esp + 0x10]
fstp qword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov eax, esi
and eax, 0x7ff00000
cmp eax, 0x7ca00000
jb 0x41e4da
mov eax, 0x7fefffff
fstp st(0)
cmp dword [esp + 0x8c], eax
jne 0x41e475
cmp dword [esp + 0x88], 0xffffffff
je 0x41e8e9
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0xffffffff
jmp 0x41e60c
fmul qword [0x49c780]
jmp 0x41e3e7
fstp st(0)
cmp eax, 1
jne 0x41e4b8
test ecx, ecx
jne 0x41e4b8
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x74], ecx
jle 0x41e8b7
mov dword [esp + 0x84], eax
jmp 0x41e7ff
fstp st(0)
fld1
fld qword [0x49c7d8]
jmp 0x41e3eb
fmul qword [0x49c780]
test edi, edi
je 0x41e3e7
fld st(0)
jmp 0x41e3eb
add esi, 0x3500000
mov dword [esp + 0x14], esi
jmp 0x41e58f
cmp dword [esp + 0x80], 0
je 0x41e56d
cmp edx, 0x6a00000
ja 0x41e56d
fld qword [0x49c7d0]
fcomp st(2)
fnstsw ax
test ah, 1
jne 0x41e551
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
fstp st(0)
or eax, 0xc00
mov dword [esp + 0x38], eax
fldcw word [esp + 0x38]
fistp qword [esp + 0x38]
mov eax, dword [esp + 0x38]
fldcw word [esp + 0x1c]
test eax, eax
jne 0x41e537
mov eax, 1
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
test eax, eax
jns 0x41e549
fadd qword [0x49c7b0]
fld st(0)
test edi, edi
jne 0x41e551
fchs
mov ecx, 0x6b00000
fstp qword [esp + 0x90]
sub ecx, edx
add dword [esp + 0x94], ecx
fld qword [esp + 0x90]
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 + 0x30]
cmp dword [esp + 0x74], ecx
jne 0x41e60a
cmp dword [esp + 0x80], 0
jne 0x41e60a
mov eax, esi
and eax, 0x7ff00000
cmp edx, eax
jne 0x41e60a
fld st(0)
call fcn.00471bf0
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fsubp st(1)
test edi, edi
jne 0x41e5e4
cmp dword [esp + 0x10], edi
jne 0x41e5e4
test esi, 0xfffff
jne 0x41e5e4
fcomp qword [0x49c7c8]
fnstsw ax
test ah, 5
jnp 0x41e7ff
jmp 0x41e60c
fld qword [0x49c7c0]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x41e7fd
fcomp qword [0x49c7b8]
fnstsw ax
test ah, 0x41
je 0x41e7ff
jmp 0x41e60c
fstp st(0)
mov edi, dword [esp + 0x24]
call fcn.0041c5b0
mov edi, dword [esp + 0x34]
call fcn.0041c5b0
mov edi, dword [esp + 0x20]
call fcn.0041c5b0
mov edi, ebx
call fcn.0041c5b0
mov esi, dword [esp + 0x44]
jmp 0x41e091
test esi, esi
jne 0x41e7ff
mov dword [esp + 0x74], edi
jmp 0x41e64d
test esi, esi
jne 0x41e7ff
cmp dword [esp + 0x10], 0
jne 0x41e7ff
mov esi, dword [esp + 0x14]
test esi, 0xfffff
jne 0x41e7ff
mov ecx, esi
and ecx, 0x7ff00000
cmp ecx, 0x6b00000
jbe 0x41e7ff
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0x14], 0
jne 0x41e690
cmp dword [eax + 0x10], 1
jle 0x41e7ff
push 1
push eax
call fcn.0041cbb0
mov edx, eax
mov eax, dword [esp + 0x28]
add esp, 8
mov dword [esp + 0x2c], edx
call fcn.0041cd70
test eax, eax
jg 0x41e735
jmp 0x41e7ff
mov ebx, dword [esp + 0x10]
test esi, esi
mov esi, dword [esp + 0x14]
je 0x41e729
mov edx, esi
and edx, 0xfffff
cmp edx, 0xfffff
jne 0x41e78d
xor edx, edx
cmp dword [esp + 0x80], edx
je 0x41e701
mov eax, esi
and eax, 0x7ff00000
cmp eax, 0x6a00000
ja 0x41e701
shr eax, 0x14
mov ecx, 0x6b
sub ecx, eax
or eax, 0xffffffff
shl eax, cl
jmp 0x41e704
or eax, 0xffffffff
cmp ebx, eax
jne 0x41e78d
and esi, 0x7ff00000
add esi, 0x100000
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], edx
mov dword [esp + 0x68], edx
jmp 0x41e7ff
test esi, 0xfffff
jne 0x41e78d
test ebx, ebx
jne 0x41e78d
cmp dword [esp + 0x80], 0
je 0x41e772
mov eax, esi
and eax, 0x7ff00000
cmp eax, 0x6b00000
jg 0x41e772
cmp eax, 0x3700000
jg 0x41e7ff
cmp dword [esp + 0x74], edi
jle 0x41e8b7
mov dword [esp + 0x84], 1
jmp 0x41e7ff
and esi, 0x7ff00000
dec esi
or esi, 0xfffff
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], 0xffffffff
jmp 0x41e7ff
test bl, 1
je 0x41e7ff
mov ecx, dword [esp + 0x68]
and esi, 0x7ff00000
xor eax, eax
sub esi, 0x3400000
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], esi
cmp ecx, eax
je 0x41e7c9
fld qword [esp + 0x48]
mov eax, 1
fadd qword [esp + 0x10]
sub eax, ecx
mov dword [esp + 0x68], eax
fstp qword [esp + 0x10]
jmp 0x41e7ff
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 0x41e8a5
cmp dword [esp + 0x74], edi
jle 0x41e8b9
mov dword [esp + 0x84], 1
fstp st(0)
mov edi, dword [esp + 0x24]
call fcn.0041c5b0
mov edi, dword [esp + 0x34]
call fcn.0041c5b0
mov edi, dword [esp + 0x20]
call fcn.0041c5b0
mov edi, dword [esp + 0x44]
call fcn.0041c5b0
mov edi, dword [esp + 0x2c]
call fcn.0041c5b0
mov edx, dword [esp + 0x74]
cmp edx, dword [esp + 0x30]
jle 0x41e84d
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x5c]
push eax
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.0041d5f0
add esp, 0xc
cmp dword [esp + 0x80], 0
fld qword [esp + 0x10]
je 0x41dd52
mov dword [esp + 0x8c], 0x39500000
mov dword [esp + 0x88], 0
fmul qword [esp + 0x88]
fst qword [esp + 0x10]
test dword [esp + 0x14], 0x7ff00000
jne 0x41dd52
fstp st(0)
call fcn.00472d0a
mov esi, dword [esp + 0x18]
fld qword [esp + 0x10]
mov dword [eax], 0x22
jmp 0x41e911
mov eax, 1
fstp st(0)
sub eax, ecx
mov dword [esp + 0x68], eax
jmp 0x41e7ff
fldz
mov esi, dword [esp + 0x18]
fstp qword [esp + 0x10]
call fcn.00472d0a
fld qword [esp + 0x10]
mov dword [eax], 0x22
jmp 0x41e911
fstp st(0)
fstp qword [esp + 0x10]
call fcn.00472d0a
fld qword [esp + 0x10]
mov dword [eax], 0x22
jmp 0x41e911
mov esi, dword [esp + 0x18]
call fcn.00472d0a
mov dword [eax], 0x22
jmp 0x41dcde
fstp st(0)
call fcn.00472d0a
mov dword [eax], 0x22
jmp 0x41dcde
fstp st(1)
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x41e91a
mov dword [eax], esi
cmp dword [esp + 0x50], 0
je 0x41e923
fchs
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret