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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x48
push ebx
push ebp
push esi
push edi
xor ebx, ebx
push ebx
push ebx
push 0x10
push 0xffff8059
lea eax, [esp + 0x50]
mov esi, ecx
push eax
mov dword [esp + 0x38], esi
call fcn.00581440
cmp word [eax], 0x80cc
setne al
test al, al
mov byte [esp + 0x17], al
je 0x5848b5
mov eax, dword [esi + 0xcc]
cmp eax, ebx
jg 0x58489a
mov ebp, dword [esi + 0xc8]
jmp 0x58489c
mov ebp, eax
mov edi, dword [esi + 0xd0]
cmp edi, ebx
jg 0x5848ac
mov edi, dword [esi + 0xc8]
mov ecx, esi
call fcn.0041d1b0
jmp 0x5848e0
mov eax, dword [esi + 0xd4]
cmp eax, ebx
jg 0x5848c7
mov ebp, dword [esi + 0xc8]
jmp 0x5848c9
mov ebp, eax
mov edi, dword [esi + 0xd8]
cmp edi, ebx
jg 0x5848d9
mov edi, dword [esi + 0xc8]
mov ecx, esi
call fcn.0041d1e0
sub eax, edi
sub eax, ebp
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0xf4]
cmp eax, 0x7fffffff
sete cl
xor edx, edx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x20], ebx
dec ecx
and ecx, eax
mov eax, dword [esi + 0xf8]
cmp eax, 0x7fffffff
sete dl
mov dword [esp + 0x34], ecx
dec edx
and edx, eax
mov al, byte [esi + 0x75]
test al, al
mov dword [esp + 0x38], edx
je 0x5863cc
push ebx
push ebx
push 0x10
push 0xffff8071
lea eax, [esp + 0x40]
push eax
mov ecx, esi
call fcn.00581440
cmp word [eax], 0x80bd
je 0x5863cc
mov eax, dword [esi + 0x1c]
cmp eax, dword [esi + 0x20]
mov dword [esp + 0x28], eax
je 0x585166
mov ecx, dword [esp + 0x28]
mov esi, dword [ecx]
mov al, byte [esi + 0x75]
test al, al
je 0x584e7e
fld dword [esi + 0x120]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
je 0x584e7e
fld dword [esi + 0x124]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
je 0x584e7e
mov ecx, dword [esi + 0x28]
test ecx, ecx
mov ebx, 0xffff80cd
je 0x5849bd
cmp dword [esi + 0x10c], ebx
jne 0x5849bd
call fcn.0058a7b0
mov ebp, eax
jmp 0x5849c3
mov ebp, dword [esi + 0x10c]
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x5849dd
cmp dword [esi + 0x110], ebx
jne 0x5849dd
call fcn.0058a7e0
mov dword [esp + 0x30], eax
jmp 0x5849e7
mov edx, dword [esi + 0x110]
mov dword [esp + 0x30], edx
mov al, byte [esp + 0x17]
test al, al
mov edi, dword [esp + 0x24]
mov ecx, dword [edi + 0x28]
je 0x584b2c
test ecx, ecx
je 0x584a0d
cmp dword [edi + 0x10c], ebx
jne 0x584a0d
call fcn.0058a7b0
jmp 0x584a13
mov eax, dword [edi + 0x10c]
mov ecx, dword [edi + 0xcc]
test ecx, ecx
jg 0x584a25
mov edx, dword [edi + 0xc8]
jmp 0x584a27
mov edx, ecx
mov ecx, dword [edi + 0xd0]
test ecx, ecx
jg 0x584a37
mov ecx, dword [edi + 0xc8]
mov ebx, dword [esp + 0x3c]
sub eax, ecx
sub eax, edx
sub eax, ebx
cmp ebp, eax
jl 0x584a91
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x584a5f
cmp dword [edi + 0x10c], 0xffff80cd
jne 0x584a5f
call fcn.0058a7b0
jmp 0x584a65
mov eax, dword [edi + 0x10c]
mov ecx, dword [edi + 0xcc]
test ecx, ecx
jg 0x584a77
mov edx, dword [edi + 0xc8]
jmp 0x584a79
mov edx, ecx
mov ecx, dword [edi + 0xd0]
test ecx, ecx
jg 0x584a89
mov ecx, dword [edi + 0xc8]
sub eax, ecx
sub eax, edx
sub eax, ebx
mov ebp, eax
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x584aab
cmp dword [edi + 0x110], 0xffff80cd
jne 0x584aab
call fcn.0058a7e0
jmp 0x584ab1
mov eax, dword [edi + 0x110]
mov ecx, dword [edi + 0xd4]
test ecx, ecx
jg 0x584ac3
mov edx, dword [edi + 0xc8]
jmp 0x584ac5
mov edx, ecx
mov ecx, dword [edi + 0xd8]
test ecx, ecx
jg 0x584ad5
mov ecx, dword [edi + 0xc8]
sub eax, ecx
mov ecx, dword [esp + 0x30]
sub eax, edx
cmp ecx, eax
jl 0x584af9
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x584af9
cmp dword [edi + 0x110], 0xffff80cd
jne 0x584af9
call fcn.0058a7e0
mov eax, dword [esi + 0xb8]
test eax, eax
jg 0x584b0b
mov ecx, dword [esi + 0xb4]
jmp 0x584b0d
mov ecx, eax
mov eax, dword [esi + 0xbc]
test eax, eax
jg 0x584b1d
mov eax, dword [esi + 0xb4]
add eax, ecx
add eax, ebp
add ebx, eax
mov dword [esp + 0x3c], ebx
jmp 0x584c51
test ecx, ecx
je 0x584b3f
cmp dword [edi + 0x10c], ebx
jne 0x584b3f
call fcn.0058a7b0
jmp 0x584b45
mov eax, dword [edi + 0x10c]
mov ecx, dword [edi + 0xcc]
test ecx, ecx
jg 0x584b57
mov edx, dword [edi + 0xc8]
jmp 0x584b59
mov edx, ecx
mov ecx, dword [edi + 0xd0]
test ecx, ecx
jg 0x584b69
mov ecx, dword [edi + 0xc8]
sub eax, ecx
sub eax, edx
cmp ebp, eax
jl 0x584b85
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x584b85
cmp dword [edi + 0x10c], ebx
jne 0x584b85
call fcn.0058a7b0
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x584b9b
cmp dword [edi + 0x110], ebx
jne 0x584b9b
call fcn.0058a7e0
jmp 0x584ba1
mov eax, dword [edi + 0x110]
mov ecx, dword [edi + 0xd4]
test ecx, ecx
jg 0x584bb3
mov edx, dword [edi + 0xc8]
jmp 0x584bb5
mov edx, ecx
mov ecx, dword [edi + 0xd8]
test ecx, ecx
jg 0x584bc5
mov ecx, dword [edi + 0xc8]
mov ebx, dword [esp + 0x40]
sub eax, ecx
sub eax, edx
mov edx, dword [esp + 0x30]
sub eax, ebx
cmp edx, eax
jl 0x584c23
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x584bf1
cmp dword [edi + 0x110], 0xffff80cd
jne 0x584bf1
call fcn.0058a7e0
jmp 0x584bf7
mov eax, dword [edi + 0x110]
mov ecx, dword [edi + 0xd4]
test ecx, ecx
jg 0x584c09
mov edx, dword [edi + 0xc8]
jmp 0x584c0b
mov edx, ecx
mov ecx, dword [edi + 0xd8]
test ecx, ecx
jg 0x584c1b
mov ecx, dword [edi + 0xc8]
sub eax, ecx
sub eax, edx
sub eax, ebx
mov edx, eax
mov eax, dword [esi + 0xc0]
test eax, eax
jg 0x584c35
mov ecx, dword [esi + 0xb4]
jmp 0x584c37
mov ecx, eax
mov eax, dword [esi + 0xc4]
test eax, eax
jg 0x584c47
mov eax, dword [esi + 0xb4]
add eax, ecx
add eax, edx
add ebx, eax
mov dword [esp + 0x40], ebx
fld dword [esi + 0x118]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
je 0x584c6e
mov dword [esp + 0x18], 0
jmp 0x584c78
fld dword [esi + 0x118]
fstp dword [esp + 0x18]
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x584c92
cmp dword [esi + 0x10c], 0xffff80cd
jne 0x584c92
call fcn.0058a7b0
jmp 0x584c98
mov eax, dword [esi + 0x10c]
mov edx, dword [esi + 0xb8]
test edx, edx
jg 0x584caa
mov edi, dword [esi + 0xb4]
jmp 0x584cac
mov edi, edx
mov ebp, dword [esi + 0xbc]
test ebp, ebp
jg 0x584cbe
mov ecx, dword [esi + 0xb4]
jmp 0x584cc0
mov ecx, ebp
mov bl, byte [esi + 0x114]
add ecx, edi
add ecx, eax
cmp bl, 1
sete bl
test edx, edx
jg 0x584cda
mov edx, dword [esi + 0xb4]
test ebp, ebp
jg 0x584ce6
mov eax, dword [esi + 0xb4]
jmp 0x584ce8
mov eax, ebp
add edx, eax
mov al, byte [esp + 0x17]
test al, al
jne 0x584d8f
fld dword [esi + 0x11c]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
je 0x584d13
mov dword [esp + 0x18], 0
jmp 0x584d1d
fld dword [esi + 0x11c]
fstp dword [esp + 0x18]
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x584d37
cmp dword [esi + 0x110], 0xffff80cd
jne 0x584d37
call fcn.0058a7e0
jmp 0x584d3d
mov eax, dword [esi + 0x110]
mov edx, dword [esi + 0xc0]
test edx, edx
jg 0x584d4f
mov edi, dword [esi + 0xb4]
jmp 0x584d51
mov edi, edx
mov ebp, dword [esi + 0xc4]
test ebp, ebp
jg 0x584d63
mov ecx, dword [esi + 0xb4]
jmp 0x584d65
mov ecx, ebp
mov bl, byte [esi + 0x115]
add ecx, edi
add ecx, eax
cmp bl, 1
sete bl
test edx, edx
jg 0x584d7f
mov edx, dword [esi + 0xb4]
test ebp, ebp
jg 0x584d8b
mov eax, dword [esi + 0xb4]
jmp 0x584d8d
mov eax, ebp
add edx, eax
fld dword [esp + 0x18]
fcomp dword [0x746468]
fnstsw ax
test ah, 0x41
jne 0x584db4
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x2c], ecx
sub eax, edx
jmp 0x584e7a
test bl, bl
je 0x584e44
xor eax, eax
test ecx, ecx
setle al
dec eax
and eax, ecx
mov edi, eax
mov al, byte [esp + 0x17]
test al, al
je 0x584e0a
mov eax, dword [esi + 0xb8]
test eax, eax
jg 0x584de2
mov ecx, dword [esi + 0xb4]
jmp 0x584de4
mov ecx, eax
mov eax, dword [esi + 0xbc]
test eax, eax
jg 0x584df4
mov eax, dword [esi + 0xb4]
mov edx, edi
sub edx, eax
sub edx, ecx
push edx
mov ecx, esi
call fcn.00581130
mov eax, dword [esp + 0x1c]
sub eax, edi
jmp 0x584e7a
mov eax, dword [esi + 0xc0]
test eax, eax
jg 0x584e1c
mov ecx, dword [esi + 0xb4]
jmp 0x584e1e
mov ecx, eax
mov eax, dword [esi + 0xc4]
test eax, eax
jg 0x584e2e
mov eax, dword [esi + 0xb4]
mov edx, edi
sub edx, eax
sub edx, ecx
push edx
mov ecx, esi
call fcn.00581210
mov eax, dword [esp + 0x1c]
sub eax, edi
jmp 0x584e7a
mov al, byte [esp + 0x17]
test al, al
je 0x584e61
fld dword [esi + 0x120]
fcomp dword [0x7464b8]
fnstsw ax
test ah, 0x40
jne 0x584e74
jmp 0x584e7e
fld dword [esi + 0x124]
fcomp dword [0x7464b8]
fnstsw ax
test ah, 0x40
je 0x584e7e
mov eax, dword [esp + 0x1c]
sub eax, ecx
mov dword [esp + 0x1c], eax
add dword [esp + 0x28], 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
cmp ecx, dword [eax + 0x20]
jne 0x584961
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x585166
mov eax, dword [esp + 0x1c]
test eax, eax
jle 0x585166
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x1c]
cmp ebx, dword [eax + 0x20]
je 0x585166
jmp 0x584ec2
mov ecx, dword [esp + 0x2c]
mov esi, dword [ebx]
mov al, byte [esi + 0x75]
test al, al
je 0x585154
fld dword [esi + 0x120]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
je 0x585154
fld dword [esi + 0x124]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
je 0x585154
mov al, byte [esp + 0x17]
test al, al
je 0x585034
fld dword [esi + 0x118]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
je 0x584f26
mov dword [esp + 0x18], 0
jmp 0x584f30
fld dword [esi + 0x118]
fstp dword [esp + 0x18]
test ecx, ecx
je 0x585154
fld dword [esp + 0x18]
fcomp dword [0x746468]
fnstsw ax
test ah, 0x41
jne 0x585154
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x584f67
cmp dword [esi + 0x10c], 0xffff80cd
jne 0x584f67
call fcn.0058a7b0
jmp 0x584f6d
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0xb8]
test ecx, ecx
jg 0x584f7d
mov ecx, dword [esi + 0xb4]
mov edi, dword [esi + 0xbc]
test edi, edi
jg 0x584f8d
mov edi, dword [esi + 0xb4]
add edi, ecx
add edi, eax
mov eax, dword [esp + 0x1c]
cdq
idiv dword [esp + 0x2c]
sub esp, 8
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
cmp eax, edi
mov dword [esp + 0x20], eax
jge 0x585154
mov ebp, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
sub eax, edi
add ecx, eax
mov eax, dword [esi + 0xec]
dec ebp
xor edx, edx
test edi, edi
setle dl
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x1c], ecx
dec edx
and edi, edx
cmp eax, edi
je 0x584fef
mov byte [esi + 0x79], 1
mov ecx, esi
call fcn.0058a2c0
cmp edi, eax
jge 0x585003
mov ecx, esi
call fcn.0058a2c0
mov edi, eax
mov ecx, esi
call fcn.0058a750
cmp edi, eax
jle 0x585017
mov ecx, esi
call fcn.0058a750
mov edi, eax
fld dword [esp + 0x18]
mov dword [esi + 0xec], edi
fchs
fsub dword [0x746484]
fstp dword [esi + 0x118]
jmp 0x585154
fld dword [esi + 0x11c]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
je 0x585051
mov dword [esp + 0x18], 0
jmp 0x58505b
fld dword [esi + 0x11c]
fstp dword [esp + 0x18]
test ecx, ecx
je 0x585154
fld dword [esp + 0x18]
fcomp dword [0x746468]
fnstsw ax
test ah, 0x41
jne 0x585154
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x585092
cmp dword [esi + 0x110], 0xffff80cd
jne 0x585092
call fcn.0058a7e0
jmp 0x585098
mov eax, dword [esi + 0x110]
mov ecx, dword [esi + 0xc0]
test ecx, ecx
jg 0x5850a8
mov ecx, dword [esi + 0xb4]
mov edi, dword [esi + 0xc4]
test edi, edi
jg 0x5850b8
mov edi, dword [esi + 0xb4]
add edi, ecx
add edi, eax
mov eax, dword [esp + 0x1c]
cdq
idiv dword [esp + 0x2c]
sub esp, 8
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
cmp eax, edi
mov dword [esp + 0x20], eax
jge 0x585154
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x2c]
sub eax, edi
add ecx, eax
xor eax, eax
dec ebp
test edi, edi
setle al
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x1c], ecx
dec eax
and edi, eax
cmp dword [esi + 0xf0], edi
je 0x585114
mov byte [esi + 0x79], 1
mov ecx, esi
call fcn.0058a2f0
cmp edi, eax
jge 0x585128
mov ecx, esi
call fcn.0058a2f0
mov edi, eax
mov ecx, esi
call fcn.0058a780
cmp edi, eax
jle 0x58513c
mov ecx, esi
call fcn.0058a780
mov edi, eax
fld dword [esp + 0x18]
mov dword [esi + 0xf0], edi
fchs
fsub dword [0x746484]
fstp dword [esi + 0x11c]
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x20]
add ebx, 4
cmp ebx, eax
jne 0x584ebe
mov ebx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x1c]
cmp ecx, dword [ebx + 0x20]
mov dword [esp + 0x28], ecx
je 0x585a70
mov esi, dword [ecx]
mov al, byte [esi + 0x75]
test al, al
je 0x585a5e
fld dword [esi + 0x120]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
je 0x585a5e
fld dword [esi + 0x124]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
je 0x585a5e
mov al, byte [esp + 0x17]
test al, al
mov dx, word [esi + 0x14]
je 0x5855e4
fld dword [esi + 0x11c]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
jne 0x585373
fld dword [esi + 0x11c]
fst dword [esp + 0x18]
fcomp dword [0x746468]
fnstsw ax
test ah, 0x41
jne 0x585373
mov eax, dword [ebx + 0xd4]
test eax, eax
jg 0x585207
mov eax, dword [ebx + 0xc8]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0xd8]
test eax, eax
jg 0x58521d
mov ebx, dword [ebx + 0xc8]
jmp 0x58521f
mov ebx, eax
mov ebp, dword [esi + 0xc0]
test ebp, ebp
jg 0x58522f
mov ebp, dword [esi + 0xb4]
mov edi, dword [esi + 0xc4]
test edi, edi
jg 0x58523f
mov edi, dword [esi + 0xb4]
mov ecx, dword [esp + 0x24]
call fcn.0041d1e0
sub eax, edi
mov edi, dword [esp + 0x40]
sub eax, ebp
sub eax, ebx
sub eax, edi
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
sub esp, 8
fmul dword [esp + 0x20]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
mov ecx, dword [esi + 0x28]
test ecx, ecx
mov edi, eax
mov dword [esp + 0x20], edi
mov ebx, 0xffff80cd
je 0x585295
cmp dword [esi + 0x108], ebx
jne 0x585295
call fcn.0058a780
jmp 0x5852a4
mov eax, dword [esi + 0x108]
test eax, eax
jge 0x5852a4
mov eax, 0x3fffffff
cmp edi, eax
jge 0x5852ac
mov eax, edi
jmp 0x5852cc
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x5852c2
cmp dword [esi + 0x108], ebx
jne 0x5852c2
call fcn.0058a780
jmp 0x5852cc
mov eax, dword [esi + 0x108]
test eax, eax
jl 0x5852d4
test eax, eax
jge 0x5852d4
xor edi, edi
jmp 0x585326
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x5852ea
cmp dword [esi + 0x108], ebx
jne 0x5852ea
call fcn.0058a780
jmp 0x5852f9
mov eax, dword [esi + 0x108]
test eax, eax
jge 0x5852f9
mov eax, 0x3fffffff
cmp edi, eax
jl 0x58532a
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x585315
cmp dword [esi + 0x108], ebx
jne 0x585315
call fcn.0058a780
mov edi, eax
jmp 0x585326
mov eax, dword [esi + 0x108]
test eax, eax
mov edi, eax
jge 0x585326
mov edi, 0x3fffffff
mov dword [esp + 0x20], edi
cmp dword [esi + 0xf0], edi
je 0x585336
mov byte [esi + 0x79], 1
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x58534c
cmp dword [esi + 0x100], ebx
jne 0x58534c
call fcn.0058a2f0
jmp 0x585352
mov eax, dword [esi + 0x100]
cmp edi, eax
jge 0x58535f
mov ecx, esi
call fcn.0058a2f0
mov edi, eax
mov ecx, esi
call fcn.0058a780
cmp edi, eax
jle 0x585417
jmp 0x58540e
cmp byte [esi + 0x115], 1
jne 0x585421
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x58539a
cmp dword [esi + 0x110], 0xffff80cd
jne 0x58539a
call fcn.0058a7e0
jmp 0x5853a0
mov eax, dword [esi + 0x110]
test eax, eax
jge 0x5853a8
xor edi, edi
jmp 0x5853ca
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x5853c4
cmp dword [esi + 0x110], 0xffff80cd
jne 0x5853c4
call fcn.0058a7e0
mov edi, eax
jmp 0x5853ca
mov edi, dword [esi + 0x110]
cmp dword [esi + 0xf0], edi
je 0x5853d6
mov byte [esi + 0x79], 1
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x5853f0
cmp dword [esi + 0x100], 0xffff80cd
jne 0x5853f0
call fcn.0058a2f0
jmp 0x5853f6
mov eax, dword [esi + 0x100]
cmp edi, eax
jge 0x585403
mov ecx, esi
call fcn.0058a2f0
mov edi, eax
mov ecx, esi
call fcn.0058a780
cmp edi, eax
jle 0x585417
mov ecx, esi
call fcn.0058a780
mov edi, eax
mov ebx, dword [esp + 0x24]
mov dword [esi + 0xf0], edi
mov eax, dword [esi + 0x104]
test eax, eax
jge 0x5854b6
fild dword [esp + 0x20]
neg eax
mov dword [esp + 0x40], eax
sub esp, 8
fdivr dword [0x746470]
fimul dword [esp + 0x48]
fadd dword [0x746498]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
mov edi, eax
cmp dword [esi + 0xec], edi
je 0x58546b
mov byte [esi + 0x79], 1
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x585485
cmp dword [esi + 0xfc], 0xffff80cd
jne 0x585485
call fcn.0058a2c0
jmp 0x58548b
mov eax, dword [esi + 0xfc]
cmp edi, eax
jge 0x585498
mov ecx, esi
call fcn.0058a2c0
mov edi, eax
mov ecx, esi
call fcn.0058a750
cmp edi, eax
jle 0x5854ac
mov ecx, esi
call fcn.0058a750
mov edi, eax
mov ebx, dword [esp + 0x24]
mov dword [esi + 0xec], edi
push 0
push 0
push 2
push 0xffff8055
lea ecx, [esp + 0x54]
push ecx
mov ecx, ebx
call fcn.00581440
fld dword [eax]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
je 0x5854e6
mov dword [esp + 0x30], 0
jmp 0x585503
push 0
push 0
push 2
push 0xffff8055
lea edx, [esp + 0x58]
push edx
mov ecx, ebx
call fcn.00581440
fld dword [eax]
fstp dword [esp + 0x30]
fld dword [esi + 0x124]
fcomp dword [0x7464b8]
fnstsw ax
test ah, 0x40
je 0x585a5a
mov ecx, dword [ebx + 0xd8]
test ecx, ecx
jg 0x585530
mov eax, dword [ebx + 0xc8]
mov dword [esp + 0x18], eax
jmp 0x585534
mov dword [esp + 0x18], ecx
mov eax, dword [ebx + 0xd4]
test eax, eax
jg 0x58554a
mov edx, dword [ebx + 0xc8]
mov dword [esp + 0x3c], edx
jmp 0x58554e
mov dword [esp + 0x3c], eax
test ecx, ecx
jg 0x58555e
mov eax, dword [ebx + 0xc8]
mov dword [esp + 0x40], eax
jmp 0x585562
mov dword [esp + 0x40], ecx
mov ebx, dword [esi + 0xc0]
test ebx, ebx
jg 0x585572
mov ebx, dword [esi + 0xb4]
mov ebp, dword [esi + 0xc4]
test ebp, ebp
jg 0x585582
mov ebp, dword [esi + 0xb4]
mov ecx, esi
call fcn.0041d1e0
mov ecx, dword [esp + 0x24]
mov edi, eax
add edi, ebp
add edi, ebx
call fcn.0041d1e0
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
sub eax, edi
sub eax, ecx
sub eax, ebp
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
fmul dword [esp + 0x30]
call sub.MSVCRT.dll__ftol
mov edi, dword [esp + 0x18]
mov ecx, eax
mov eax, dword [esp + 0x38]
sub eax, ecx
mov ecx, dword [esi + 0xc4]
sub eax, edi
test ecx, ecx
jg 0x5855d5
mov ecx, dword [esi + 0xb4]
sub eax, ecx
push eax
mov ecx, esi
call fcn.0058a040
jmp 0x585a56
fld dword [esi + 0x118]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
jne 0x5857ae
fld dword [esi + 0x118]
fst dword [esp + 0x40]
fcomp dword [0x746468]
fnstsw ax
test ah, 0x41
jne 0x5857ae
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x585630
cmp dword [ebx + 0xec], 0xffff80cd
jne 0x585630
call fcn.0041d1b0
jmp 0x58563b
mov eax, dword [ebx + 0xec]
cdq
xor eax, edx
sub eax, edx
mov ecx, dword [ebx + 0xcc]
test ecx, ecx
jg 0x58564d
mov ebp, dword [ebx + 0xc8]
jmp 0x58564f
mov ebp, ecx
mov ecx, dword [ebx + 0xd0]
test ecx, ecx
jg 0x585665
mov edx, dword [esp + 0x24]
mov edi, dword [edx + 0xc8]
jmp 0x585667
mov edi, ecx
mov edx, dword [esi + 0xb8]
test edx, edx
jg 0x585677
mov edx, dword [esi + 0xb4]
mov ecx, dword [esi + 0xbc]
test ecx, ecx
jg 0x585687
mov ecx, dword [esi + 0xb4]
sub eax, ecx
sub eax, edx
sub eax, edi
sub eax, ebp
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
sub esp, 8
fmul dword [esp + 0x48]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
mov ecx, dword [esi + 0x28]
test ecx, ecx
mov edi, eax
mov dword [esp + 0x20], edi
mov ebx, 0xffff80cd
je 0x5856d0
cmp dword [esi + 0x104], ebx
jne 0x5856d0
call fcn.0058a750
jmp 0x5856df
mov eax, dword [esi + 0x104]
test eax, eax
jge 0x5856df
mov eax, 0x3fffffff
cmp edi, eax
jge 0x5856e7
mov eax, edi
jmp 0x585707
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x5856fd
cmp dword [esi + 0x104], ebx
jne 0x5856fd
call fcn.0058a750
jmp 0x585707
mov eax, dword [esi + 0x104]
test eax, eax
jl 0x58570f
test eax, eax
jge 0x58570f
xor edi, edi
jmp 0x585761
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x585725
cmp dword [esi + 0x104], ebx
jne 0x585725
call fcn.0058a750
jmp 0x585734
mov eax, dword [esi + 0x104]
test eax, eax
jge 0x585734
mov eax, 0x3fffffff
cmp edi, eax
jl 0x585765
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x585750
cmp dword [esi + 0x104], ebx
jne 0x585750
call fcn.0058a750
mov edi, eax
jmp 0x585761
mov eax, dword [esi + 0x104]
test eax, eax
mov edi, eax
jge 0x585761
mov edi, 0x3fffffff
mov dword [esp + 0x20], edi
cmp dword [esi + 0xec], edi
je 0x585771
mov byte [esi + 0x79], 1
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x585787
cmp dword [esi + 0xfc], ebx
jne 0x585787
call fcn.0058a2c0
jmp 0x58578d
mov eax, dword [esi + 0xfc]
cmp edi, eax
jge 0x58579a
mov ecx, esi
call fcn.0058a2c0
mov edi, eax
mov ecx, esi
call fcn.0058a750
cmp edi, eax
jle 0x585852
jmp 0x585849
cmp byte [esi + 0x114], 1
jne 0x58585c
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x5857d5
cmp dword [esi + 0x10c], 0xffff80cd
jne 0x5857d5
call fcn.0058a7b0
jmp 0x5857db
mov eax, dword [esi + 0x10c]
test eax, eax
jge 0x5857e3
xor edi, edi
jmp 0x585805
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x5857ff
cmp dword [esi + 0x10c], 0xffff80cd
jne 0x5857ff
call fcn.0058a7b0
mov edi, eax
jmp 0x585805
mov edi, dword [esi + 0x10c]
cmp dword [esi + 0xec], edi
je 0x585811
mov byte [esi + 0x79], 1
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x58582b
cmp dword [esi + 0xfc], 0xffff80cd
jne 0x58582b
call fcn.0058a2c0
jmp 0x585831
mov eax, dword [esi + 0xfc]
cmp edi, eax
jge 0x58583e
mov ecx, esi
call fcn.0058a2c0
mov edi, eax
mov ecx, esi
call fcn.0058a750
cmp edi, eax
jle 0x585852
mov ecx, esi
call fcn.0058a750
mov edi, eax
mov ebx, dword [esp + 0x24]
mov dword [esi + 0xec], edi
mov eax, dword [esi + 0x108]
test eax, eax
jge 0x5858f1
fild dword [esp + 0x20]
neg eax
mov dword [esp + 0x40], eax
sub esp, 8
fdivr dword [0x746470]
fimul dword [esp + 0x48]
fadd dword [0x746498]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
mov edi, eax
cmp dword [esi + 0xf0], edi
je 0x5858a6
mov byte [esi + 0x79], 1
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x5858c0
cmp dword [esi + 0x100], 0xffff80cd
jne 0x5858c0
call fcn.0058a2f0
jmp 0x5858c6
mov eax, dword [esi + 0x100]
cmp edi, eax
jge 0x5858d3
mov ecx, esi
call fcn.0058a2f0
mov edi, eax
mov ecx, esi
call fcn.0058a780
cmp edi, eax
jle 0x5858e7
mov ecx, esi
call fcn.0058a780
mov edi, eax
mov ebx, dword [esp + 0x24]
mov dword [esi + 0xf0], edi
push 0
push 0
push 2
push 0xffff8054
lea eax, [esp + 0x5c]
push eax
mov ecx, ebx
call fcn.00581440
fld dword [eax]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
je 0x585921
mov dword [esp + 0x30], 0
jmp 0x58593e
push 0
push 0
push 2
push 0xffff8054
lea ecx, [esp + 0x60]
push ecx
mov ecx, ebx
call fcn.00581440
fld dword [eax]
fstp dword [esp + 0x30]
fld dword [esi + 0x120]
fcomp dword [0x7464b8]
fnstsw ax
test ah, 0x40
je 0x585a5a
mov eax, dword [ebx + 0xcc]
test eax, eax
jg 0x58596b
mov edx, dword [ebx + 0xc8]
mov dword [esp + 0x3c], edx
jmp 0x58596f
mov dword [esp + 0x3c], eax
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x58598b
cmp dword [ebx + 0xec], 0xffff80cd
jne 0x58598b
call fcn.0041d1b0
mov edi, eax
jmp 0x58599c
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0xec]
cdq
mov edi, eax
xor edi, edx
sub edi, edx
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0xcc]
test eax, eax
jg 0x5859b6
mov edx, dword [ecx + 0xc8]
mov dword [esp + 0x40], edx
jmp 0x5859ba
mov dword [esp + 0x40], eax
mov eax, dword [ecx + 0xd0]
test eax, eax
jg 0x5859cc
mov ebx, dword [ecx + 0xc8]
jmp 0x5859ce
mov ebx, eax
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x5859e8
cmp dword [esi + 0xec], 0xffff80cd
jne 0x5859e8
call fcn.0041d1b0
jmp 0x5859f3
mov eax, dword [esi + 0xec]
cdq
xor eax, edx
sub eax, edx
mov ebp, dword [esi + 0xb8]
test ebp, ebp
jg 0x585a05
mov edx, dword [esi + 0xb4]
jmp 0x585a07
mov edx, ebp
mov ecx, dword [esi + 0xbc]
test ecx, ecx
jg 0x585a17
mov ecx, dword [esi + 0xb4]
test ebp, ebp
jg 0x585a21
mov ebp, dword [esi + 0xb4]
sub edi, ecx
sub edi, edx
sub edi, eax
mov eax, dword [esp + 0x40]
sub edi, ebx
sub edi, eax
mov dword [esp + 0x40], edi
fild dword [esp + 0x40]
fmul dword [esp + 0x30]
call sub.MSVCRT.dll__ftol
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
add eax, ebp
add eax, edi
add eax, edx
push eax
mov ecx, esi
call fcn.0058a010
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov eax, dword [ebx + 0x20]
add ecx, 4
cmp ecx, eax
mov dword [esp + 0x28], ecx
jne 0x58517a
mov eax, dword [esp + 0x2c]
test eax, eax
mov al, byte [esp + 0x17]
jle 0x585e3d
test al, al
je 0x585a96
mov eax, dword [ebx + 0xcc]
test eax, eax
jg 0x585aa8
mov eax, dword [ebx + 0xc8]
jmp 0x585aa8
mov eax, dword [ebx + 0xd8]
test eax, eax
jg 0x585aa6
mov eax, dword [ebx + 0xc8]
neg eax
mov edi, dword [ebx + 0x1c]
mov dword [esp + 0x20], eax
cmp edi, dword [ebx + 0x20]
mov dword [esp + 0x28], edi
je 0x5863cc
mov esi, dword [edi]
mov al, byte [esi + 0x75]
test al, al
je 0x585e23
mov al, byte [esp + 0x17]
test al, al
je 0x585c79
fld dword [esi + 0x120]
fcomp dword [0x7464b8]
fnstsw ax
test ah, 0x40
je 0x585e1c
fld dword [esi + 0x118]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
jne 0x585be7
fld dword [esi + 0x118]
fst dword [esp + 0x18]
fcomp dword [0x746468]
fnstsw ax
test ah, 0x41
jne 0x585bc4
mov eax, dword [esp + 0x1c]
cdq
idiv dword [esp + 0x2c]
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
fmul dword [esp + 0x18]
fstp qword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x50]
push edi
push ebp
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
test eax, eax
jge 0x585b57
xor edi, edi
jmp 0x585b69
push edi
push ebp
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
mov edi, eax
cmp dword [esi + 0xec], edi
je 0x585b75
mov byte [esi + 0x79], 1
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x585b8f
cmp dword [esi + 0xfc], 0xffff80cd
jne 0x585b8f
call fcn.0058a2c0
jmp 0x585b95
mov eax, dword [esi + 0xfc]
cmp edi, eax
jge 0x585ba2
mov ecx, esi
call fcn.0058a2c0
mov edi, eax
mov ecx, esi
call fcn.0058a750
cmp edi, eax
jle 0x585bb6
mov ecx, esi
call fcn.0058a750
mov edi, eax
mov ebx, dword [esp + 0x24]
mov dword [esi + 0xec], edi
mov edi, dword [esp + 0x28]
fld dword [esp + 0x18]
fcomp dword [0x74af9c]
fnstsw ax
test ah, 0x41
je 0x585be7
fld dword [esp + 0x18]
fchs
fsub dword [0x746484]
fstp dword [esi + 0x118]
mov eax, dword [esi + 0xb8]
test eax, eax
jg 0x585bf7
mov eax, dword [esi + 0xb4]
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x34]
add eax, ecx
mov ecx, dword [esi + 0xdc]
add eax, ebp
cmp ecx, eax
je 0x585c11
mov byte [esi + 0x78], 1
mov edx, eax
sub edx, ecx
add dword [esi + 0x94], edx
mov ecx, dword [esi + 0x28]
test ecx, ecx
mov dword [esi + 0xdc], eax
je 0x585c3b
cmp dword [esi + 0xec], 0xffff80cd
jne 0x585c3b
call fcn.0041d1b0
jmp 0x585c46
mov eax, dword [esi + 0xec]
cdq
xor eax, edx
sub eax, edx
mov ecx, dword [esi + 0xb8]
test ecx, ecx
jg 0x585c58
mov edx, dword [esi + 0xb4]
jmp 0x585c5a
mov edx, ecx
mov ecx, dword [esi + 0xbc]
test ecx, ecx
jg 0x585c6a
mov ecx, dword [esi + 0xb4]
add ecx, edx
add ecx, eax
mov eax, dword [esp + 0x20]
add eax, ecx
jmp 0x585e18
fld dword [esi + 0x124]
fcomp dword [0x7464b8]
fnstsw ax
test ah, 0x40
je 0x585e1c
fld dword [esi + 0x11c]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
jne 0x585d8b
fld dword [esi + 0x11c]
fst dword [esp + 0x18]
fcomp dword [0x746468]
fnstsw ax
test ah, 0x41
jne 0x585d68
mov eax, dword [esp + 0x1c]
cdq
idiv dword [esp + 0x2c]
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
fmul dword [esp + 0x18]
fstp qword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x50]
push edi
push ebp
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
test eax, eax
jge 0x585cfb
xor edi, edi
jmp 0x585d0d
push edi
push ebp
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
mov edi, eax
cmp dword [esi + 0xf0], edi
je 0x585d19
mov byte [esi + 0x79], 1
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x585d33
cmp dword [esi + 0x100], 0xffff80cd
jne 0x585d33
call fcn.0058a2f0
jmp 0x585d39
mov eax, dword [esi + 0x100]
cmp edi, eax
jge 0x585d46
mov ecx, esi
call fcn.0058a2f0
mov edi, eax
mov ecx, esi
call fcn.0058a780
cmp edi, eax
jle 0x585d5a
mov ecx, esi
call fcn.0058a780
mov edi, eax
mov ebx, dword [esp + 0x24]
mov dword [esi + 0xf0], edi
mov edi, dword [esp + 0x28]
fld dword [esp + 0x18]
fcomp dword [0x74af9c]
fnstsw ax
test ah, 0x41
je 0x585d8b
fld dword [esp + 0x18]
fchs
fsub dword [0x746484]
fstp dword [esi + 0x11c]
mov ecx, dword [esi + 0xc4]
test ecx, ecx
jg 0x585d9b
mov ecx, dword [esi + 0xb4]
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x38]
sub eax, ecx
mov ecx, dword [esi + 0xe0]
add eax, ebp
cmp ecx, eax
je 0x585db5
mov byte [esi + 0x78], 1
mov edx, eax
sub edx, ecx
add dword [esi + 0x98], edx
mov ecx, dword [esi + 0x28]
test ecx, ecx
mov dword [esi + 0xe0], eax
je 0x585ddf
cmp dword [esi + 0xf0], 0xffff80cd
jne 0x585ddf
call fcn.0041d1e0
jmp 0x585dea
mov eax, dword [esi + 0xf0]
cdq
xor eax, edx
sub eax, edx
mov ecx, dword [esi + 0xc0]
test ecx, ecx
jg 0x585dfc
mov edx, dword [esi + 0xb4]
jmp 0x585dfe
mov edx, ecx
mov ecx, dword [esi + 0xc4]
test ecx, ecx
jg 0x585e0e
mov ecx, dword [esi + 0xb4]
add ecx, edx
add ecx, eax
mov eax, dword [esp + 0x20]
sub eax, ecx
mov dword [esp + 0x20], eax
mov ecx, esi
call fcn.00584850
mov eax, dword [ebx + 0x20]
add edi, 4
cmp edi, eax
mov dword [esp + 0x28], edi
jne 0x585abc
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
test al, al
mov ecx, dword [ebx + 0x28]
je 0x586005
test ecx, ecx
je 0x585e61
cmp dword [ebx + 0xec], 0xffff80cd
jne 0x585e61
call fcn.0041d1b0
mov edi, eax
jmp 0x585e6e
mov eax, dword [ebx + 0xec]
cdq
mov edi, eax
xor edi, edx
sub edi, edx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x585e8a
cmp dword [ebx + 0x10c], 0xffff80cd
jne 0x585e8a
call fcn.0058a7b0
mov esi, eax
jmp 0x585e90
mov esi, dword [ebx + 0x10c]
test esi, esi
je 0x585ec6
cmp edi, esi
jne 0x585ebb
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x585ebb
push 0
push 0
push 0x10
push 0xffff806d
lea eax, [esp + 0x60]
push eax
call fcn.00581440
cmp word [eax], 0x80bd
je 0x585ec6
sub edi, esi
mov dword [esp + 0x1c], edi
jmp 0x585f8b
mov edi, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x20]
xor ebp, ebp
cmp edi, eax
je 0x585f38
mov esi, dword [edi]
mov al, byte [esi + 0x75]
test al, al
je 0x585f2e
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x585ef5
cmp dword [esi + 0xec], 0xffff80cd
jne 0x585ef5
call fcn.0041d1b0
jmp 0x585f00
mov eax, dword [esi + 0xec]
cdq
xor eax, edx
sub eax, edx
mov ecx, dword [esi + 0xb8]
test ecx, ecx
jg 0x585f12
mov edx, dword [esi + 0xb4]
jmp 0x585f14
mov edx, ecx
mov ecx, dword [esi + 0xbc]
test ecx, ecx
jg 0x585f26
mov esi, dword [esi + 0xb4]
jmp 0x585f28
mov esi, ecx
add esi, edx
add esi, eax
add ebp, esi
mov eax, dword [ebx + 0x20]
add edi, 4
cmp edi, eax
jne 0x585ed2
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x585f52
cmp dword [ebx + 0xec], 0xffff80cd
jne 0x585f52
call fcn.0041d1b0
jmp 0x585f5d
mov eax, dword [ebx + 0xec]
cdq
xor eax, edx
sub eax, edx
mov ecx, dword [ebx + 0xcc]
test ecx, ecx
jg 0x585f6f
mov edx, dword [ebx + 0xc8]
jmp 0x585f71
mov edx, ecx
mov ecx, dword [ebx + 0xd0]
test ecx, ecx
jg 0x585f81
mov ecx, dword [ebx + 0xc8]
sub eax, ecx
sub eax, edx
sub eax, ebp
mov dword [esp + 0x1c], eax
push 0
push 0
push 2
push 0xffff8054
lea ecx, [esp + 0x60]
push ecx
mov ecx, ebx
call fcn.00581440
mov edx, dword [eax]
mov dword [esp + 0x30], edx
fld dword [esp + 0x30]
fcomp dword [0x74b444]
fnstsw ax
test ah, 1
mov eax, dword [ebx + 0xcc]
je 0x585fd2
test eax, eax
jg 0x586188
mov edi, dword [ebx + 0xc8]
jmp 0x5861bc
test eax, eax
jg 0x585fde
mov esi, dword [ebx + 0xc8]
jmp 0x585fe0
mov esi, eax
fild dword [esp + 0x1c]
sub esp, 8
fmul dword [esp + 0x38]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
mov edi, eax
add edi, esi
jmp 0x5861bc
test ecx, ecx
je 0x58601e
cmp dword [ebx + 0xf0], 0xffff80cd
jne 0x58601e
call fcn.0041d1e0
mov edi, eax
jmp 0x58602b
mov eax, dword [ebx + 0xf0]
cdq
mov edi, eax
xor edi, edx
sub edi, edx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x586047
cmp dword [ebx + 0x110], 0xffff80cd
jne 0x586047
call fcn.0058a7e0
mov esi, eax
jmp 0x58604d
mov esi, dword [ebx + 0x110]
test esi, esi
je 0x586083
cmp edi, esi
jne 0x586078
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x586078
push 0
push 0
push 0x10
push 0xffff806e
lea eax, [esp + 0x60]
push eax
call fcn.00581440
cmp word [eax], 0x80bd
je 0x586083
sub edi, esi
mov dword [esp + 0x1c], edi
jmp 0x586148
mov edi, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x20]
xor ebp, ebp
cmp edi, eax
je 0x5860f5
mov esi, dword [edi]
mov al, byte [esi + 0x75]
test al, al
je 0x5860eb
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x5860b2
cmp dword [esi + 0xf0], 0xffff80cd
jne 0x5860b2
call fcn.0041d1e0
jmp 0x5860bd
mov eax, dword [esi + 0xf0]
cdq
xor eax, edx
sub eax, edx
mov ecx, dword [esi + 0xc0]
test ecx, ecx
jg 0x5860cf
mov edx, dword [esi + 0xb4]
jmp 0x5860d1
mov edx, ecx
mov ecx, dword [esi + 0xc4]
test ecx, ecx
jg 0x5860e3
mov esi, dword [esi + 0xb4]
jmp 0x5860e5
mov esi, ecx
add esi, edx
add esi, eax
add ebp, esi
mov eax, dword [ebx + 0x20]
add edi, 4
cmp edi, eax
jne 0x58608f
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x58610f
cmp dword [ebx + 0xf0], 0xffff80cd
jne 0x58610f
call fcn.0041d1e0
jmp 0x58611a
mov eax, dword [ebx + 0xf0]
cdq
xor eax, edx
sub eax, edx
mov ecx, dword [ebx + 0xd4]
test ecx, ecx
jg 0x58612c
mov edx, dword [ebx + 0xc8]
jmp 0x58612e
mov edx, ecx
mov ecx, dword [ebx + 0xd8]
test ecx, ecx
jg 0x58613e
mov ecx, dword [ebx + 0xc8]
sub eax, ecx
sub eax, edx
sub eax, ebp
mov dword [esp + 0x1c], eax
push 0
push 0
push 2
push 0xffff8055
lea ecx, [esp + 0x60]
push ecx
mov ecx, ebx
call fcn.00581440
mov edx, dword [eax]
mov dword [esp + 0x30], edx
fld dword [esp + 0x30]
fcomp dword [0x74b444]
fnstsw ax
test ah, 1
mov eax, dword [ebx + 0xd8]
je 0x58618c
test eax, eax
jg 0x586186
mov eax, dword [ebx + 0xc8]
neg eax
mov edi, eax
jmp 0x5861bc
test eax, eax
jg 0x586198
mov esi, dword [ebx + 0xc8]
jmp 0x58619a
mov esi, eax
fild dword [esp + 0x1c]
sub esp, 8
fmul dword [esp + 0x38]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
mov edi, eax
add edi, esi
neg edi
mov ebp, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x20]
cmp ebp, ecx
je 0x5863cc
lea eax, [ebp + 4]
mov dword [esp + 0x2c], eax
mov esi, dword [ebp]
mov al, byte [esi + 0x75]
test al, al
je 0x5863b3
mov edx, dword [esp + 0x1c]
test edx, edx
jge 0x5861ed
xor edx, edx
mov dword [esp + 0x1c], edx
fld dword [esp + 0x30]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
je 0x586215
cmp dword [esp + 0x2c], ecx
jne 0x586215
mov cl, byte [esp + 0x17]
neg cl
sbb ecx, ecx
and ecx, 2
dec ecx
imul ecx, edx
add edi, ecx
mov al, byte [esp + 0x17]
test al, al
je 0x5862c2
fld dword [esi + 0x120]
fcomp dword [0x7464b8]
fnstsw ax
test ah, 0x40
je 0x58635e
mov eax, dword [esi + 0xb8]
test eax, eax
jg 0x586248
mov eax, dword [esi + 0xb4]
mov ecx, dword [esp + 0x34]
add eax, edi
add eax, ecx
mov ecx, dword [esi + 0xdc]
cmp ecx, eax
je 0x58625e
mov byte [esi + 0x78], 1
mov edx, eax
sub edx, ecx
add dword [esi + 0x94], edx
mov ecx, dword [esi + 0x28]
test ecx, ecx
mov dword [esi + 0xdc], eax
je 0x586288
cmp dword [esi + 0xec], 0xffff80cd
jne 0x586288
call fcn.0041d1b0
jmp 0x586293
mov eax, dword [esi + 0xec]
cdq
xor eax, edx
sub eax, edx
mov ecx, dword [esi + 0xb8]
test ecx, ecx
jg 0x5862a5
mov edx, dword [esi + 0xb4]
jmp 0x5862a7
mov edx, ecx
mov ecx, dword [esi + 0xbc]
test ecx, ecx
jg 0x5862b7
mov ecx, dword [esi + 0xb4]
add ecx, edx
add ecx, eax
add edi, ecx
jmp 0x58635e
fld dword [esi + 0x124]
fcomp dword [0x7464b8]
fnstsw ax
test ah, 0x40
je 0x58635e
mov ecx, dword [esi + 0xc4]
test ecx, ecx
jg 0x5862e9
mov ecx, dword [esi + 0xb4]
mov eax, edi
sub eax, ecx
add eax, dword [esp + 0x38]
mov ecx, dword [esi + 0xe0]
cmp ecx, eax
je 0x5862ff
mov byte [esi + 0x78], 1
mov edx, eax
sub edx, ecx
add dword [esi + 0x98], edx
mov ecx, dword [esi + 0x28]
test ecx, ecx
mov dword [esi + 0xe0], eax
je 0x586329
cmp dword [esi + 0xf0], 0xffff80cd
jne 0x586329
call fcn.0041d1e0
jmp 0x586334
mov eax, dword [esi + 0xf0]
cdq
xor eax, edx
sub eax, edx
mov ecx, dword [esi + 0xc0]
test ecx, ecx
jg 0x586346
mov edx, dword [esi + 0xb4]
jmp 0x586348
mov edx, ecx
mov ecx, dword [esi + 0xc4]
test ecx, ecx
jg 0x586358
mov ecx, dword [esi + 0xb4]
add ecx, edx
add ecx, eax
sub edi, ecx
fld dword [esi + 0x118]
fcomp dword [0x74af9c]
fnstsw ax
test ah, 0x41
je 0x586385
fld dword [esi + 0x118]
fchs
fsub dword [0x746484]
fstp dword [esi + 0x118]
fld dword [esi + 0x11c]
fcomp dword [0x74af9c]
fnstsw ax
test ah, 0x41
je 0x5863ac
fld dword [esi + 0x11c]
fchs
fsub dword [0x746484]
fstp dword [esi + 0x11c]
mov ecx, esi
call fcn.00584850
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebx + 0x20]
add ebp, 4
add eax, 4
cmp ebp, ecx
mov dword [esp + 0x2c], eax
jne 0x5861d1
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret