Function at 0x418570
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4a400b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb4
push ebx
push ebp
push esi
push edi
xor esi, esi
push 0x12c
push esi
lea ecx, [esp + 0xb4]
mov dword [esp + 0x88], esi
call fcn.00439d40
push 0x12c
push esi
lea ecx, [esp + 0x78]
mov dword [esp + 0xd4], esi
call fcn.00439d40
push 0x12c
push esi
lea ecx, [esp + 0x68]
mov byte [esp + 0xd4], 1
call fcn.00439d40
push 0x12c
push esi
lea ecx, [esp + 0xa4]
mov byte [esp + 0xd4], 2
call fcn.00439d40
mov eax, 0x7fff
mov dword [esp + 0x38], esi
mov word [esp + 0x2c], ax
mov word [esp + 0x2e], ax
mov eax, 0xffff8001
mov dword [esp + 0x54], esi
mov dword [esp + 0x4c], esi
mov word [esp + 0x30], ax
mov word [esp + 0x32], ax
fild dword [0x4cb9d8]
mov edi, dword [esp + 0xd4]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x5c], esi
fld st(0)
fdiv qword [0x4c9f78]
mov eax, dword [edi + 0x38]
mov dword [esp + 0x58], esi
mov esi, dword [edi + 8]
xor bl, bl
mov ebp, dword [eax]
mov byte [esp + 0xcc], 4
mov cl, byte [esi + 6]
mov byte [esp + 0x1f], 0
shr cl, 6
test cl, 1
mov byte [esp + 0x1e], 0
mov byte [esp + 0x4b], bl
mov byte [esp + 0x1d], bl
mov dword [esp + 0x20], ebp
fsub st(1)
fmul qword [0x4c9f68]
fstp dword [esp + 0x40]
fstp st(0)
jne 0x418697
push 0
push 2
push 0x4b1624
push 0x4c9f88
call fcn.00441210
add esp, 0x10
add esi, 0x10
mov dword [esp + 0x80], esi
mov edx, dword [esi]
mov dword [esp + 0x84], edx
mov eax, dword [esi]
xor edx, edx
cmp eax, edx
je 0x4186b6
mov eax, dword [eax]
jmp 0x4186b8
xor eax, eax
cmp eax, edx
mov dword [esp + 0x88], eax
je 0x4186c7
mov ecx, dword [eax]
jmp 0x4186c9
xor ecx, ecx
cmp eax, edx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x94], edx
mov byte [esp + 0x90], 0
mov byte [esp + 0x91], 0
je 0x4186f4
mov dword [esp + 0x94], eax
jmp 0x4186fc
mov byte [esp + 0x91], 1
mov byte [esp + 0x98], 0
mov dword [esp + 0x44], edx
cmp dword [esi], 0
je 0x418d2f
cmp eax, dword [esp + 0x94]
jne 0x418729
mov cl, byte [esp + 0x98]
test cl, cl
jne 0x418d2f
push eax
call fcn.0041a6d0
add esp, 4
test al, al
jne 0x418cf8
mov ecx, dword [esp + 0x88]
lea eax, [esp + 0xbc]
push eax
call fcn.00435490
mov ecx, dword [eax]
mov esi, dword [0x4cb9c8]
mov dword [esp + 0x2c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x32]
sub eax, esi
push 1
movsx eax, ax
push eax
lea ecx, [esp + 0xb4]
mov dword [esp + 0x58], eax
call fcn.00439e30
mov edi, dword [esp + 0xd4]
mov esi, dword [esp + 0x44]
cmp si, word [edi + 0x48]
jl 0x4187b1
push 0xf0
push 0x4b1654
push 0x4b1640
push 0
push 0x4b1634
push 0x4c9fc4
call fcn.00441210
add esp, 0x18
mov eax, dword [edi + 0x44]
movsx ebx, si
mov dword [esp + 0x24], ebx
lea ecx, [eax + ebx*4]
call fcn.00438a60
test al, al
je 0x41888e
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
mov si, word [esp + 0x2c]
mov edi, dword [esp + 0x2e]
inc ecx
cmp si, dx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x32]
mov bx, di
jg 0x4187f8
cmp cx, bx
jl 0x4187f8
mov eax, ecx
sub eax, edi
jmp 0x4187fa
xor eax, eax
cmp ax, word [esp + 0x54]
jle 0x41881b
cmp si, dx
jg 0x418813
cmp cx, bx
jl 0x418813
sub ecx, edi
mov dword [esp + 0x54], ecx
jmp 0x41881b
mov dword [esp + 0x54], 0
cmp si, dx
jg 0x418844
cmp word [esp + 0x32], bx
jl 0x418844
lea ecx, [esp + 0x2c]
call fcn.00406ee0
lea ecx, [esp + 0x2c]
movsx esi, ax
call fcn.00406ec0
movsx ecx, ax
imul esi, ecx
jmp 0x418846
xor esi, esi
cmp esi, dword [esp + 0x4c]
jle 0x418cf8
lea ecx, [esp + 0x2c]
call fcn.00402110
test al, al
jne 0x418881
lea ecx, [esp + 0x2c]
call fcn.00406ee0
lea ecx, [esp + 0x2c]
movsx esi, ax
call fcn.00406ec0
movsx edx, ax
imul esi, edx
mov dword [esp + 0x4c], esi
jmp 0x418cf8
mov dword [esp + 0x4c], 0
jmp 0x418cf8
mov edi, dword [0x4c9eb8]
test edi, edi
je 0x4188d1
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.00442a90
mov edi, dword [0x4c9eb8]
mov ebp, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4188e5
push 1
call fcn.00442a90
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x4188e5
mov byte [ebp], 0
mov ecx, dword [esp + 0x20]
test ebp, ebp
mov al, byte [ebx + ecx]
je 0x41890a
test al, al
je 0x418906
movsx edx, al
push edx
push ebp
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
je 0x41890a
mov bl, 1
jmp 0x41890c
xor bl, bl
test ebp, ebp
je 0x418919
push ebp
call fcn.00442aa0
add esp, 4
test bl, bl
je 0x41892d
mov eax, dword [esp + 0x50]
push 1
push eax
lea ecx, [esp + 0x78]
call fcn.00439e30
mov edi, dword [0x4c9ed8]
test edi, edi
je 0x418970
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.00442a90
mov edi, dword [0x4c9ed8]
mov ebp, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418984
push 1
call fcn.00442a90
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x418984
mov byte [ebp], 0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
test ebp, ebp
mov al, byte [eax + ecx]
je 0x4189ad
test al, al
je 0x4189a9
movsx edx, al
push edx
push ebp
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
je 0x4189ad
mov bl, 1
jmp 0x4189af
xor bl, bl
test ebp, ebp
je 0x4189bc
push ebp
call fcn.00442aa0
add esp, 4
test bl, bl
je 0x4189d0
mov eax, dword [esp + 0x50]
push 1
push eax
lea ecx, [esp + 0x68]
call fcn.00439e30
mov edi, dword [0x4c9ea8]
test edi, edi
je 0x418a13
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.00442a90
mov edi, dword [0x4c9ea8]
mov ebp, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418a27
push 1
call fcn.00442a90
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x418a27
mov byte [ebp], 0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
test ebp, ebp
mov al, byte [eax + ecx]
je 0x418a50
test al, al
je 0x418a4c
movsx edx, al
push edx
push ebp
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
je 0x418a50
mov bl, 1
jmp 0x418a52
xor bl, bl
test ebp, ebp
je 0x418a5f
push ebp
call fcn.00442aa0
add esp, 4
test bl, bl
je 0x418b17
mov eax, dword [esp + 0x50]
push 1
push eax
lea ecx, [esp + 0xa4]
call fcn.00439e30
mov edi, dword [0x4c9ec8]
test edi, edi
je 0x418abd
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.00442a90
mov edi, dword [0x4c9ec8]
mov ebp, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418ad1
push 1
call fcn.00442a90
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x418ad1
mov byte [ebp], 0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
test ebp, ebp
mov al, byte [eax + ecx]
je 0x418afa
test al, al
je 0x418af6
movsx edx, al
push edx
push ebp
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
je 0x418afa
mov bl, 1
jmp 0x418afc
xor bl, bl
test ebp, ebp
je 0x418b09
push ebp
call fcn.00442aa0
add esp, 4
test bl, bl
je 0x418b13
inc dword [esp + 0x5c]
jmp 0x418b17
inc dword [esp + 0x58]
mov edi, dword [0x4c9e98]
test edi, edi
je 0x418b5a
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.00442a90
mov edi, dword [0x4c9e98]
mov ebp, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418b6e
push 1
call fcn.00442a90
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x418b6e
mov byte [ebp], 0
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
test ebp, ebp
mov al, byte [ecx + edx]
je 0x418b97
test al, al
je 0x418b93
movsx eax, al
push eax
push ebp
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
je 0x418b97
mov bl, 1
jmp 0x418b99
xor bl, bl
test ebp, ebp
je 0x418ba6
push ebp
call fcn.00442aa0
add esp, 4
test bl, bl
je 0x418cf8
mov edi, dword [0x4c9ec8]
test edi, edi
je 0x418bf1
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.00442a90
mov edi, dword [0x4c9ec8]
mov ebp, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418c05
push 1
call fcn.00442a90
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x418c05
mov byte [ebp], 0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
test ebp, ebp
mov al, byte [ecx + eax]
je 0x418c2e
test al, al
je 0x418c2a
movsx edx, al
push edx
push ebp
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
je 0x418c2e
mov bl, 1
jmp 0x418c30
xor bl, bl
test ebp, ebp
je 0x418c3d
push ebp
call fcn.00442aa0
add esp, 4
test bl, bl
je 0x418c9b
mov ax, word [esp + 0x2c]
mov cx, word [esp + 0x2e]
cmp ax, word [esp + 0x30]
jg 0x418c61
mov eax, dword [esp + 0x32]
cmp ax, cx
jl 0x418c61
sub eax, dword [esp + 0x2e]
jmp 0x418c63
xor eax, eax
mov edx, dword [0x4cb9c8]
movsx ecx, cx
sub edx, ecx
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
movsx eax, ax
mov dword [esp + 0x24], eax
fidiv dword [esp + 0x24]
fcomp qword [0x4a8298]
fnstsw ax
test ah, 0x41
jne 0x418cf8
mov ecx, dword [esp + 0x50]
push 1
push ecx
lea ecx, [esp + 0x78]
jmp 0x418cf3
mov dx, word [esp + 0x2c]
mov cx, word [esp + 0x2e]
cmp dx, word [esp + 0x30]
jg 0x418cbb
mov eax, dword [esp + 0x32]
cmp ax, cx
jl 0x418cbb
sub eax, dword [esp + 0x2e]
jmp 0x418cbd
xor eax, eax
mov edx, dword [0x4cb9c8]
movsx ecx, cx
sub edx, ecx
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
movsx eax, ax
mov dword [esp + 0x24], eax
fidiv dword [esp + 0x24]
fcomp qword [0x4a8290]
fnstsw ax
test ah, 1
je 0x418cf8
mov ecx, dword [esp + 0x50]
push 1
push ecx
lea ecx, [esp + 0x68]
call fcn.00439e30
lea ecx, [esp + 0x80]
call fcn.004403e0
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0xd4]
mov bl, byte [esp + 0x4b]
mov ebp, dword [esp + 0x20]
inc eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x88]
jmp 0x418708
lea edx, [esp + 0x60]
push edx
call fcn.00419ec0
fstp dword [esp + 0x18]
lea eax, [esp + 0x74]
push eax
call fcn.00419ec0
fstp dword [esp + 0x18]
lea ecx, [esp + 0x30]
lea edx, [esp + 0x20]
push ecx
lea eax, [esp + 0xa8]
push edx
push eax
push edi
call fcn.0041a340
add esp, 0x18
lea ecx, [esp + 0xac]
push 0x3f7ff972
call fcn.00439fc0
mov eax, dword [0x4c97f0]
mov esi, 0x14
fstp dword [esp + 0x20]
cmp eax, esi
jl 0x418de5
push ebp
push 0x4b50a4
call fcn.00443600
mov ecx, dword [0x4cae98]
add esp, 8
push ecx
lea ecx, [edi + 0x44]
call fcn.004393f0
fld dword [esp + 0x28]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x20]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x30]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x2c]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x30]
sub esp, 8
fstp qword [esp]
push 0x4b5078
call fcn.00443600
add esp, 0x2c
mov al, byte [0x4c9f38]
test al, al
jne 0x418e49
fld dword [esp + 0x18]
fcomp dword [0x4a8234]
fnstsw ax
test ah, 0x41
jne 0x418e49
fld dword [esp + 0x18]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 0x40
je 0x418e49
fld dword [esp + 0x18]
fadd dword [esp + 0x40]
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 1
je 0x418e49
mov eax, dword [0x4c97f0]
mov edx, dword [esp + 0x14]
cmp eax, esi
mov dword [esp + 0x28], edx
jl 0x418e49
fld dword [esp + 0x18]
sub esp, 8
fstp qword [esp]
push 0x4b504c
call fcn.00443600
add esp, 0xc
fld dword [esp + 0x10]
fcomp dword [0x4a8234]
fnstsw ax
test ah, 0x41
je 0x41919d
fld dword [esp + 0x14]
fcomp dword [0x4a8234]
fnstsw ax
test ah, 0x41
je 0x41919d
fld dword [esp + 0x18]
fcomp dword [0x4a8234]
fnstsw ax
test ah, 0x41
jne 0x418e97
fld dword [esp + 0x18]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 0x40
je 0x41919d
fld dword [esp + 0x40]
fmul qword [0x4c9f58]
cmp dword [0x4c97f0], esi
fiadd dword [0x4cb9d8]
fstp dword [esp + 0x44]
jl 0x418ec0
push 0x4b5034
call fcn.00443600
add esp, 4
cmp word [esp + 0x38], 0
je 0x419181
movsx eax, word [esp + 0x54]
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fld dword [esp + 0x20]
fmul qword [0x4a8288]
fcompp
fnstsw ax
test ah, 0x41
je 0x419181
fld dword [esp + 0x20]
fild dword [esp + 0x4c]
fld st(1)
fmul st(2)
fmul qword [0x4a8288]
fcompp
fnstsw ax
test ah, 0x41
fstp st(0)
je 0x419181
mov al, byte [0x4c9ef8]
test al, al
je 0x418f90
fld dword [esp + 0x20]
fcomp dword [esp + 0x44]
fnstsw ax
test ah, 1
jne 0x418f58
fld dword [esp + 0x18]
fcomp dword [0x4a8234]
fnstsw ax
test ah, 0x41
jne 0x418f90
fld dword [esp + 0x18]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 0x40
je 0x418f90
fld dword [esp + 0x18]
fcomp dword [esp + 0x44]
fnstsw ax
test ah, 1
je 0x418f90
mov eax, dword [0x4c97f0]
mov byte [esp + 0x1d], 1
cmp eax, esi
jl 0x419078
fld dword [esp + 0x44]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x20]
sub esp, 8
fstp qword [esp]
push 0x4b5004
call fcn.00443600
add esp, 0x14
jmp 0x419078
mov al, byte [0x4c9f38]
test al, al
je 0x418ff1
fld dword [esp + 0x28]
fcomp dword [0x4a8234]
fnstsw ax
test ah, 0x41
jne 0x418ff1
fld dword [esp + 0x18]
mov eax, dword [0x4c97f0]
mov ecx, dword [esp + 0x18]
fst qword [esp + 0x38]
fmul qword [0x4c9f78]
cmp eax, esi
mov bl, 1
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x10]
jl 0x419481
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
fld dword [esp + 0x10]
push edx
push eax
sub esp, 8
fstp qword [esp]
push 0x4b4fe4
jmp 0x419479
fild dword [0x4cb9d8]
fld dword [esp + 0x20]
fld st(1)
fdiv qword [0x4c9f78]
fadd st(2)
fmul qword [0x4a8220]
fcompp
fnstsw ax
test ah, 0x41
fstp st(0)
jne 0x41905d
fld dword [esp + 0x20]
mov eax, dword [0x4c97f0]
mov ecx, dword [esp + 0x20]
fst qword [esp + 0x38]
fmul qword [0x4c9f78]
cmp eax, esi
mov bl, 1
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x10]
jl 0x419481
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
fld dword [esp + 0x10]
push edx
push eax
sub esp, 8
fstp qword [esp]
push 0x4b4fc4
jmp 0x419479
mov eax, dword [0x4c97f0]
mov byte [esp + 0x1d], 1
cmp eax, esi
jl 0x419078
push 0x4b4f94
call fcn.00443600
add esp, 4
fld dword [edi + 0x2c]
fild dword [0x4cb9d8]
mov byte [edi + 0x64], 1
fdiv st(1)
fstp dword [edi + 0x5c]
fstp st(0)
fild dword [0x4cb9d8]
fdiv qword [0x4c9f78]
fdiv dword [edi + 0x2c]
mov byte [edi + 0x65], 1
fstp dword [edi + 0x60]
mov al, byte [0x4c9f48]
test al, al
je 0x41913f
lea esi, [edi + 0x44]
mov ecx, esi
call fcn.00439210
mov cx, word [esi + 4]
sub cx, ax
test cx, cx
jg 0x4190dc
cmp word [edi + 0x48], 1
je 0x4190dc
cmp word [esp + 0x5c], 0
jle 0x41913f
cmp word [esp + 0x58], 0
jle 0x41913f
mov eax, dword [0x4c97f0]
mov ebx, 2
cmp eax, ebx
jl 0x419106
push ebp
push 0x4b4f7c
call fcn.00443600
mov edx, dword [0x4cae98]
add esp, 8
mov ecx, esi
push edx
call fcn.004393f0
push edi
call fcn.0041a220
mov eax, dword [0x4c97f0]
add esp, 4
cmp eax, ebx
jl 0x41913f
push 0x4b20c4
call fcn.00443600
mov eax, dword [0x4cae98]
add esp, 4
mov ecx, esi
push eax
call fcn.004393f0
push 0x4b18c8
call fcn.00443600
add esp, 4
mov al, byte [esp + 0x1d]
test al, al
jne 0x419580
fild dword [0x4cb9d8]
fsubr dword [esp + 0x10]
fabs
fld dword [esp + 0x40]
fcompp
fnstsw ax
test ah, 1
je 0x419580
fld dword [edi + 0x2c]
fld dword [esp + 0x10]
fdiv st(1)
mov esi, dword [esp + 0xd8]
fstp dword [esi]
fstp st(0)
jmp 0x41958d
mov eax, dword [0x4c97f0]
mov byte [esp + 0x1d], 1
cmp eax, esi
jl 0x419078
push 0x4b4f54
jmp 0x419070
cmp dword [0x4c97f0], esi
jl 0x4191bc
fld dword [esp + 0x18]
sub esp, 8
fstp qword [esp]
push 0x4b4f38
call fcn.00443600
add esp, 0xc
fld dword [esp + 0x10]
fcomp dword [0x4a8234]
fnstsw ax
test ah, 0x41
jne 0x41927f
fld dword [esp + 0x14]
fcomp dword [0x4a8234]
mov byte [esp + 0x1e], 1
fnstsw ax
test ah, 0x40
je 0x419221
fld dword [esp + 0x28]
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 0x41
jne 0x419213
fld dword [esp + 0x40]
fadd dword [esp + 0x10]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 1
je 0x419213
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
jmp 0x419221
fld dword [esp + 0x10]
fdiv qword [0x4c9f78]
fstp dword [esp + 0x14]
mov eax, dword [esp + 0xa4]
test eax, eax
jle 0x419249
lea edx, [esp + 0x60]
lea eax, [esp + 0x70]
push edx
lea ecx, [esp + 0x18]
push eax
lea edx, [esp + 0x18]
push ecx
push edx
push edi
call fcn.00419ef0
add esp, 0x14
mov ecx, dword [esp + 0x68]
mov eax, dword [0x4c97f0]
test ecx, ecx
setg byte [esp + 0x1f]
cmp eax, esi
jl 0x419398
fld dword [esp + 0x14]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x18]
sub esp, 8
fstp qword [esp]
push 0x4b4f10
jmp 0x419390
fld dword [esp + 0x14]
fcomp dword [0x4a8234]
fnstsw ax
test ah, 0x41
jne 0x419336
fld dword [esp + 0x18]
fcomp dword [0x4a8234]
mov byte [esp + 0x1f], 1
fnstsw ax
test ah, 0x41
jne 0x4192c7
fld dword [esp + 0x14]
fsub dword [esp + 0x40]
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 0x41
jne 0x4192c7
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], eax
jmp 0x4192d5
fld dword [esp + 0x14]
fmul qword [0x4c9f78]
fstp dword [esp + 0x10]
fld dword [esp + 0x18]
fadd dword [esp + 0x28]
fcomp dword [0x4a8234]
fnstsw ax
test ah, 0x41
jne 0x419307
lea ecx, [esp + 0x60]
lea edx, [esp + 0x70]
push ecx
lea eax, [esp + 0x18]
push edx
lea ecx, [esp + 0x18]
push eax
push ecx
push edi
call fcn.00419ef0
add esp, 0x14
mov ecx, dword [esp + 0x78]
mov eax, dword [0x4c97f0]
test ecx, ecx
setg byte [esp + 0x1e]
cmp eax, esi
jl 0x419398
fld dword [esp + 0x14]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x18]
sub esp, 8
fstp qword [esp]
push 0x4b4ee8
jmp 0x419390
fld dword [esp + 0x28]
fcomp dword [esp + 0x18]
mov edx, dword [esp + 0x18]
mov byte [esp + 0x1e], 1
mov dword [esp + 0x10], edx
fnstsw ax
test ah, 0x41
jne 0x419361
mov eax, dword [esp + 0x28]
mov byte [esp + 0x1f], 1
mov dword [esp + 0x14], eax
jmp 0x41936f
fld dword [esp + 0x18]
fdiv qword [0x4c9f78]
fstp dword [esp + 0x14]
cmp dword [0x4c97f0], esi
jl 0x419398
fld dword [esp + 0x14]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x20]
sub esp, 8
fstp qword [esp]
push 0x4b4ebc
call fcn.00443600
add esp, 0x14
mov al, byte [0x4c9f28]
test al, al
je 0x419481
mov eax, dword [esp + 0x68]
test eax, eax
jle 0x419412
fld dword [esp + 0x40]
fadd dword [esp + 0x10]
push 0x38d1b717
lea ecx, [esp + 0x64]
fstp dword [esp + 0x3c]
call fcn.00439fc0
fcomp dword [esp + 0x38]
fnstsw ax
test ah, 0x41
je 0x419412
fld dword [esp + 0x10]
fmul qword [0x4c9f78]
mov eax, dword [0x4c97f0]
mov ecx, dword [esp + 0x10]
cmp eax, esi
mov bl, 1
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x10]
jl 0x419481
fld dword [esp + 0x14]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x18]
sub esp, 8
fstp qword [esp]
push 0x4b4e9c
jmp 0x419479
mov eax, dword [esp + 0x78]
test eax, eax
jle 0x419481
fld dword [esp + 0x14]
fsub dword [esp + 0x40]
push 0x3f7ff972
lea ecx, [esp + 0x74]
fstp dword [esp + 0x3c]
call fcn.00439fc0
fcomp dword [esp + 0x38]
fnstsw ax
test ah, 1
jne 0x419481
fld dword [esp + 0x14]
fdiv qword [0x4c9f78]
mov eax, dword [0x4c97f0]
mov edx, dword [esp + 0x14]
cmp eax, esi
mov bl, 1
mov dword [esp + 0x10], edx
fstp dword [esp + 0x14]
jl 0x419481
fld dword [esp + 0x14]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x18]
sub esp, 8
fstp qword [esp]
push 0x4b4e7c
call fcn.00443600
add esp, 0x14
mov eax, dword [0x4cb9d8]
lea ecx, [eax + eax]
mov dword [esp + 0x38], ecx
fild dword [esp + 0x38]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 1
jne 0x4194dc
fld dword [edi + 0x2c]
fld dword [esp + 0x10]
fdiv st(1)
fild dword [0x4ca218]
fcompp
fnstsw ax
test ah, 1
fstp st(0)
je 0x4194dc
fld dword [esp + 0x14]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x4194dc
fld dword [esp + 0x14]
fld dword [esp + 0x10]
fmul qword [0x4a8280]
fcompp
fnstsw ax
test ah, 0x41
je 0x41953f
test bl, bl
mov byte [esp + 0x1d], 1
jne 0x419529
mov al, byte [0x4c97e0]
test al, al
je 0x419529
cmp dword [0x4c97f0], 2
jl 0x419521
push ebp
push 0x4b4e60
call fcn.00443600
mov edx, dword [0x4cae98]
add esp, 8
lea ecx, [edi + 0x44]
push edx
call fcn.004393f0
push 0x4b18c8
call fcn.00443600
add esp, 4
lea ecx, [edi + 0x44]
call fcn.00439590
cmp dword [0x4c97f0], esi
jl 0x419078
push 0x4b4e30
jmp 0x419070
test bl, bl
jne 0x419078
fld dword [edi + 0x2c]
fld dword [esp + 0x10]
fdiv st(1)
mov cl, byte [esp + 0x1e]
test cl, cl
sete al
mov byte [edi + 0x64], al
mov al, byte [esp + 0x1f]
test al, al
sete cl
fstp dword [edi + 0x5c]
fstp st(0)
fld dword [edi + 0x2c]
fld dword [esp + 0x14]
fdiv st(1)
mov byte [edi + 0x65], cl
fstp dword [edi + 0x60]
fstp st(0)
jmp 0x41914b
mov esi, dword [esp + 0xd8]
mov dword [esi], 0
fld dword [esi]
fcomp dword [0x4a8234]
fnstsw ax
test ah, 0x41
mov eax, dword [0x4c97f0]
jne 0x4195a6
cmp eax, 3
jge 0x4195ab
cmp eax, 5
jl 0x419615
push ebp
push 0x4b4e2c
call fcn.00443600
mov ecx, dword [0x4cae98]
add esp, 8
push ecx
lea ecx, [edi + 0x44]
call fcn.004393f0
fld dword [esi]
fcomp dword [0x4a8234]
fnstsw ax
mov al, 0x2a
test ah, 0x41
je 0x4195db
mov al, 0x20
movsx ecx, word [esp + 0x54]
fld dword [esp + 0x20]
movsx edx, al
mov eax, dword [esp + 0x4c]
push edx
push eax
push ecx
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x28]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x2c]
sub esp, 8
fstp qword [esp]
push 0x4b4dec
call fcn.00443600
add esp, 0x28
lea ecx, [esp + 0x9c]
mov byte [esp + 0xcc], 2
call fcn.00439e10
lea ecx, [esp + 0x60]
mov byte [esp + 0xcc], 1
call fcn.00439e10
lea ecx, [esp + 0x70]
mov byte [esp + 0xcc], 0
call fcn.00439e10
lea ecx, [esp + 0xac]
mov dword [esp + 0xcc], 0xffffffff
call fcn.00439e10
mov ecx, dword [esp + 0xc4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xc0
ret