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

Disassembly:
push ebp
xor edx, edx
push edi
push esi
push ebx
sub esp, 0x9c
mov ebx, dword [esp + 0xbc]
mov eax, dword [ebx]
mov ebp, eax
and eax, 7
and ebp, 0xffffffcf
cmp eax, 4
mov dword [ebx], ebp
ja case.default.0x616e28
jmp dword [eax*4 + 0x7ff390]
lea eax, [esp + 0x8c]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00615120
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
lea edx, [eax + ecx - 1]
fstp qword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov eax, edx
mov dword [esp + 0x78], edx
sar eax, 0x1f
mov dword [esp + 0x28], eax
xor eax, edx
sub eax, dword [esp + 0x28]
and ecx, 0xfffff
or ecx, 0x3ff00000
mov dword [esp + 0x44], ecx
sub eax, 0x435
fld qword [esp + 0x40]
test eax, eax
fsub dword [0x7ff3a4]
fmul qword [0x7ff3a8]
fadd qword [0x7ff3b0]
fild dword [esp + 0x78]
fmul qword [0x7ff3b8]
faddp st(1)
jle 0x616eb5
mov dword [esp + 0x78], eax
fild dword [esp + 0x78]
fmul qword [0x7ff3c0]
faddp st(1)
fnstcw word [esp + 0x7e]
movzx eax, word [esp + 0x7e]
mov ah, 0xc
mov word [esp + 0x7c], ax
fldcw word [esp + 0x7c]
fist dword [esp + 0x28]
fldcw word [esp + 0x7e]
fldz
fucomp st(1)
fnstsw ax
sahf
jbe 0x616ef8
fild dword [esp + 0x28]
fucompp
fnstsw ax
sahf
setne al
setp byte [esp + 0x50]
or al, byte [esp + 0x50]
movzx eax, al
sub dword [esp + 0x28], eax
jmp 0x616efa
fstp st(0)
mov eax, edx
shl eax, 0x14
add eax, ecx
cmp dword [esp + 0x28], 0x16
mov dword [esp + 0x44], eax
mov dword [esp + 0x64], 1
ja 0x616f39
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x64], 0
fld qword [ecx*8 + 0x7ff2a0]
fld qword [esp + 0x40]
fxch st(1)
fucompp
fnstsw ax
sahf
jbe 0x616f39
sub dword [esp + 0x28], 1
mov eax, dword [esp + 0x48]
sub eax, 1
sub eax, edx
js 0x617a80
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 0
mov ecx, dword [esp + 0x28]
test ecx, ecx
js 0x617a61
mov edx, dword [esp + 0x28]
add dword [esp + 0x58], edx
mov dword [esp + 0x60], 0
mov dword [esp + 0x68], edx
cmp dword [esp + 0xc0], 9
ja 0x617570
cmp dword [esp + 0xc0], 5
jle 0x61836d
sub dword [esp + 0xc0], 4
xor eax, eax
cmp dword [esp + 0xc0], 3
je 0x61790f
jg 0x617b19
cmp dword [esp + 0xc0], 2
jne 0x61757b
mov dword [esp + 0x6c], 0
mov edx, dword [esp + 0xc4]
test edx, edx
jle 0x617db9
mov edx, dword [esp + 0xc4]
cmp edx, 0xe
setbe cl
and ecx, eax
mov eax, edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x50], edx
mov byte [esp + 0x24], cl
mov dword [esp], eax
call fcn.006185c0
movzx ecx, byte [esp + 0x24]
mov edx, eax
mov eax, dword [esp + 0xb0]
mov eax, dword [eax + 0xc]
sub eax, 1
cmp eax, 0
mov dword [esp + 0x54], eax
je 0x617038
jge 0x617026
mov dword [esp + 0x54], 2
and ebp, 8
je 0x617038
mov eax, 3
sub eax, dword [esp + 0x54]
mov dword [esp + 0x54], eax
test cl, cl
je 0x617048
mov ebp, dword [esp + 0x54]
test ebp, ebp
je 0x617750
cmp dword [esp + 0x28], 0xe
jle 0x617630
mov ebp, dword [esp + 0x6c]
test ebp, ebp
jne 0x617a93
mov edi, dword [esp + 0x60]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x4c], 0
mov ecx, dword [esp + 0x58]
test ecx, ecx
jle 0x617096
test ebp, ebp
jle 0x617096
mov eax, dword [esp + 0x58]
cmp eax, ebp
jle 0x617085
mov eax, ebp
sub dword [esp + 0x5c], eax
sub ebp, eax
sub dword [esp + 0x58], eax
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x6170f4
mov ecx, dword [esp + 0x6c]
test ecx, ecx
je 0x617dc9
test edi, edi
jle 0x6170e8
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], edx
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00615aa0
mov dword [esp + 4], esi
mov dword [esp + 0x4c], eax
mov dword [esp], eax
call fcn.00615800
mov dword [esp], esi
mov dword [esp + 0x24], eax
call fcn.00615340
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov esi, eax
mov ecx, dword [esp + 0x60]
sub ecx, edi
jne 0x617ed9
mov dword [esp + 0x20], edx
mov dword [esp], 1
call fcn.00615960
mov edx, dword [esp + 0x68]
test edx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x40], eax
jle 0x61712c
mov ecx, dword [esp + 0x68]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00615aa0
mov edx, dword [esp + 0x20]
mov dword [esp + 0x40], eax
cmp dword [esp + 0xc0], 1
jle 0x617c07
mov dword [esp + 0x34], 0
mov edi, dword [esp + 0x68]
mov eax, 0x1f
test edi, edi
je 0x61715e
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 0x10]
bsr eax, dword [ecx + eax*4 + 0x10]
xor eax, 0x1f
sub eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
lea edi, [eax - 4]
and edi, 0x1f
lea eax, [edi + ecx]
test eax, eax
mov dword [esp + 0x8c], edi
mov dword [esp + 0x2c], edi
jle 0x61719f
mov dword [esp], esi
mov dword [esp + 0x20], edx
mov dword [esp + 4], eax
call fcn.00615710
mov edx, dword [esp + 0x20]
mov esi, eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x58]
test eax, eax
jle 0x6171c7
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x20], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00615710
mov edx, dword [esp + 0x20]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x64]
test ecx, ecx
jne 0x617b80
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x617de8
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x617c43
add edi, ebp
test edi, edi
jle 0x61720d
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x20], edx
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.00615710
mov edx, dword [esp + 0x20]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x4c]
test ecx, ecx
jne 0x6181bd
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x8c], 1
mov dword [esp + 0x48], edx
mov dword [esp + 0x2c], edx
mov ebp, dword [esp + 0x40]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.00618380
mov dword [esp + 4], ebx
mov dword [esp], esi
add eax, 0x30
mov dword [esp + 0x34], eax
call fcn.00615080
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 0x38], eax
call fcn.00615570
mov ebp, eax
mov eax, 1
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x617a50
mov dword [esp + 0x24], eax
mov dword [esp], ebp
call fcn.00615340
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x617950
mov ecx, dword [esp + 0xc0]
test ecx, ecx
jne 0x617950
mov edx, dword [esp + 0x54]
test edx, edx
jne 0x617950
mov edx, dword [esp + 0xb8]
test byte [edx], 1
jne 0x617950
cmp dword [esp + 0x34], 0x39
mov dword [esp + 0x4c], ebx
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x58]
je 0x6182d4
cmp dword [esp + 0x38], 0
jle 0x61834a
add dword [esp + 0x34], 1
mov dword [esp + 0x30], 0x20
movzx ecx, byte [esp + 0x34]
mov byte [ebp], cl
mov eax, dword [esp + 0x28]
add ebp, 1
add eax, 1
mov dword [esp + 0x2c], eax
lea esi, [esi]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x20], edx
mov dword [esp], eax
call fcn.00615340
test edi, edi
mov edx, dword [esp + 0x20]
je 0x617356
cmp dword [esp + 0x4c], edi
je 0x617346
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x617346
mov ecx, dword [esp + 0x4c]
mov dword [esp], ecx
call fcn.00615340
mov edx, dword [esp + 0x20]
mov dword [esp + 0x20], edx
mov dword [esp], edi
call fcn.00615340
mov edx, dword [esp + 0x20]
mov dword [esp + 0x20], edx
mov dword [esp], esi
call fcn.00615340
mov byte [ebp], 0
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
mov dword [eax], ecx
mov eax, dword [esp + 0xcc]
test eax, eax
je 0x61738b
mov eax, dword [esp + 0xcc]
mov dword [eax], ebp
mov ecx, dword [esp + 0x30]
or dword [ebx], ecx
add esp, 0x9c
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0xb0]
xor edx, edx
mov edi, dword [eax]
mov eax, 0x20
cmp edi, 0x20
jle 0x6173be
add eax, eax
add edx, 1
cmp edi, eax
jg 0x6173b5
mov dword [esp], edx
call fcn.00615390
mov edx, dword [esp + 0xb8]
mov esi, eax
lea eax, [edi - 1]
sar eax, 5
lea eax, [edx + eax*4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xb8]
lea ecx, [esi + 0x14]
mov dword [esp + 0x48], ecx
mov edx, ecx
lea esi, [esi]
mov ecx, dword [eax]
add eax, 4
mov dword [edx], ecx
add edx, 4
cmp dword [esp + 0x28], eax
jae 0x6173f0
sub edx, dword [esp + 0x48]
sar edx, 2
lea eax, [esi + edx*4 + 0x10]
jmp 0x617412
mov edx, ecx
cmp dword [eax], 0
lea ecx, [edx - 1]
jne 0x617550
sub eax, 4
test ecx, ecx
jne 0x617410
mov dword [esi + 0x10], 0
mov dword [esp + 0x48], 0
mov dword [esp], esi
call fcn.006160f0
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x4c], edx
test eax, eax
mov dword [esp + 0x8c], eax
jne 0x617520
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x616e30
mov dword [esp], esi
call fcn.00615340
mov ebp, dword [esp + 0xc8]
mov eax, dword [esp + 0xcc]
mov dword [ebp], 1
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], 0x7ff38d
call fcn.00618600
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
mov edx, eax
mov eax, edx
ret
mov ecx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xcc]
mov dword [ecx], 0xffff8000
mov dword [esp + 4], ebp
mov dword [esp + 8], 3
mov dword [esp], 0x7ff389
call fcn.00618600
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
mov edx, eax
mov eax, edx
ret
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0xcc]
mov dword [eax], 0xffff8000
mov dword [esp + 4], edx
mov dword [esp + 8], 8
mov dword [esp], str.Infinity
call fcn.00618600
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
mov edx, eax
mov eax, edx
ret
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00615fe0
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0xb4]
sub dword [esp + 0x48], eax
add ecx, eax
mov dword [esp + 0x4c], ecx
jmp 0x617456
bsr eax, dword [esi + edx*4 + 0x10]
mov dword [esi + 0x10], edx
shl edx, 5
xor eax, 0x1f
sub edx, eax
mov dword [esp + 0x48], edx
jmp 0x617434
mov dword [esp + 0xc0], 0
mov dword [esp + 0x78], edi
xor ecx, ecx
fild dword [esp + 0x78]
fmul qword [0x7ff3c8]
mov dword [esp + 0x6c], 1
mov dword [esp + 0x70], 0xffffffff
mov dword [esp + 0x50], 0xffffffff
mov dword [esp + 0xc4], 0
fldcw word [esp + 0x7c]
fistp dword [esp + 0x78]
fldcw word [esp + 0x7e]
mov eax, dword [esp + 0x78]
add eax, 3
mov dword [esp + 0x8c], eax
jmp 0x616ff3
fld st(0)
mov eax, dword [esp + 0x50]
fadd st(1)
fadd dword [0x7ff3dc]
fstp qword [esp + 0x40]
sub dword [esp + 0x44], 0x3400000
test eax, eax
jne 0x617ec6
fld st(0)
fsub dword [0x7ff3e0]
fld qword [esp + 0x40]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
ja 0x617ee2
fxch st(1)
fchs
fucompp
fnstsw ax
sahf
ja 0x617b42
jmp 0x617629
fstp st(0)
fstp st(0)
jmp 0x617629
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x617629
fstp st(0)
fstp qword [esp + 0x40]
lea esi, [esi]
mov ecx, dword [esp + 0x4c]
test ecx, ecx
js 0x617053
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
test eax, eax
fld qword [ecx*8 + 0x7ff2a0]
jle 0x617e68
fld qword [esp + 0x40]
lea ebp, [edx + 1]
fld st(0)
fdiv st(2)
fnstcw word [esp + 0x7e]
mov dword [esp + 0x8c], 1
movzx eax, word [esp + 0x7e]
mov ah, 0xc
mov word [esp + 0x7c], ax
fldcw word [esp + 0x7c]
fistp dword [esp + 0x78]
fldcw word [esp + 0x7e]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x78], ecx
lea eax, [ecx + 0x30]
fild dword [esp + 0x78]
fmul st(2)
mov byte [edx], al
fsubp st(1)
fldz
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
sahf
je 0x61830f
mov eax, dword [esp + 0x8c]
cmp dword [esp + 0x50], eax
je 0x617d15
mov edi, edx
fld dword [0x7ff3d4]
mov edx, dword [esp + 0x50]
jmp 0x6176df
mov eax, dword [esp + 0x8c]
cmp edx, eax
je 0x617d11
add eax, 1
fmul st(1), st(0)
mov dword [esp + 0x8c], eax
fld st(1)
fdiv st(3)
fldcw word [esp + 0x7c]
fistp dword [esp + 0x78]
fldcw word [esp + 0x7e]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x78], ecx
lea eax, [ecx + 0x30]
fild dword [esp + 0x78]
fmul st(3)
mov byte [ebp], al
add ebp, 1
fsubp st(2)
fldz
fxch st(2)
fucom st(2)
fnstsw ax
fstp st(2)
sahf
jne 0x6176d0
jp 0x6176d0
fstp st(0)
fstp st(0)
fstp st(0)
mov edx, edi
jmp 0x617731
fstp st(0)
fstp st(0)
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x30], 0
add ecx, 1
mov dword [esp + 0x2c], ecx
jmp 0x617356
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x617048
mov eax, dword [esp + 0x64]
mov dword [esp + 0x8c], 0
fld qword [esp + 0x40]
test eax, eax
je 0x6175cd
mov ebp, dword [esp + 0x50]
test ebp, ebp
jle 0x6175cd
fld1
fucomp st(1)
fnstsw ax
sahf
jbe 0x6175cd
mov ecx, dword [esp + 0x70]
test ecx, ecx
jle 0x617629
fld st(0)
mov ecx, dword [esp + 0x70]
fmul dword [0x7ff3d4]
mov dword [esp + 0x74], 0xffffffff
fld st(0)
fmul dword [0x7ff3d8]
fadd dword [0x7ff3dc]
fstp qword [esp + 0x40]
sub dword [esp + 0x44], 0x3400000
mov ebp, dword [esp + 0x6c]
test ebp, ebp
je 0x617f05
fld qword [esp + 0x40]
lea ebp, [edx + 1]
fld dword [0x7ff3e4]
fdiv qword [ecx*8 + 0x7ff298]
fnstcw word [esp + 0x7e]
mov dword [esp + 0x8c], 0
movzx eax, word [esp + 0x7e]
mov ah, 0xc
mov word [esp + 0x7c], ax
fsubrp st(1)
fxch st(1)
fldcw word [esp + 0x7c]
fist dword [esp + 0x78]
fldcw word [esp + 0x7e]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x78], eax
add eax, 0x30
fild dword [esp + 0x78]
fsubp st(1)
fxch st(1)
mov byte [edx], al
fucom st(1)
fnstsw ax
sahf
ja 0x6178de
fld st(1)
fsubr dword [0x7ff3d0]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
sahf
ja 0x61805b
mov eax, dword [esp + 0x8c]
add eax, 1
cmp eax, ecx
mov dword [esp + 0x8c], eax
jge 0x617619
fld dword [0x7ff3d4]
jmp 0x6178a4
fld st(1)
fsubr dword [0x7ff3d0]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
sahf
ja 0x618063
mov eax, dword [esp + 0x8c]
add eax, 1
cmp eax, ecx
mov dword [esp + 0x8c], eax
jge 0x61761f
fxch st(1)
fxch st(2)
fmul st(1), st(0)
fmul st(2), st(0)
fxch st(2)
fldcw word [esp + 0x7c]
fist dword [esp + 0x78]
fldcw word [esp + 0x7e]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x78], eax
add eax, 0x30
fild dword [esp + 0x78]
fsubp st(1)
fxch st(1)
mov byte [ebp], al
add ebp, 1
fucom st(1)
fnstsw ax
sahf
jbe 0x617870
fstp st(0)
fstp st(1)
fstp st(1)
jmp 0x6178e2
fstp st(0)
fstp st(1)
fldz
fxch st(1)
fucompp
fnstsw ax
sahf
jne 0x6182f7
jp 0x6182f7
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x30], 0
add ecx, 1
mov dword [esp + 0x2c], ecx
jmp 0x617356
mov dword [esp + 0x6c], 0
mov ecx, dword [esp + 0x28]
add ecx, dword [esp + 0xc4]
mov dword [esp + 0x70], ecx
add ecx, 1
test ecx, ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x8c], ecx
jle 0x617d9a
cmp ecx, 0xe
setbe cl
and ecx, eax
mov eax, dword [esp + 0x50]
jmp 0x616ff3
cmp dword [esp + 0x38], 0
jl 0x618096
jne 0x617978
mov ebp, dword [esp + 0xc0]
test ebp, ebp
jne 0x617978
mov edx, dword [esp + 0xb8]
test byte [edx], 1
je 0x618096
test eax, eax
jle 0x6179c4
cmp dword [esp + 0x54], 2
je 0x6179c4
cmp dword [esp + 0x34], 0x39
mov dword [esp + 0x4c], ebx
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x58]
je 0x6182d4
movzx eax, byte [esp + 0x34]
add eax, 1
mov byte [ebp], al
mov ecx, dword [esp + 0x28]
add ebp, 1
mov dword [esp + 0x30], 0x20
add ecx, 1
mov dword [esp + 0x2c], ecx
jmp 0x617310
mov edx, dword [esp + 0x2c]
movzx eax, byte [esp + 0x34]
mov byte [edx], al
mov ecx, dword [esp + 0x50]
add edx, 1
cmp dword [esp + 0x8c], ecx
mov dword [esp + 0x2c], edx
je 0x618232
mov dword [esp], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0xa
call fcn.00615990
cmp ebx, edi
mov esi, eax
je 0x617af8
mov dword [esp], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0xa
call fcn.00615990
mov dword [esp], edi
mov dword [esp + 8], 0
mov dword [esp + 4], 0xa
mov ebx, eax
call fcn.00615990
mov edi, eax
add dword [esp + 0x8c], 1
jmp 0x617238
mov dword [esp + 4], ebp
mov dword [esp], esi
call fcn.00615080
jmp 0x61727d
mov ecx, dword [esp + 0x28]
sub dword [esp + 0x5c], ecx
mov dword [esp + 0x68], 0
neg ecx
mov dword [esp + 0x60], ecx
jmp 0x616f74
neg eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], 0
jmp 0x616f54
cmp dword [esp + 0xc0], 1
jle 0x617fdc
mov edi, dword [esp + 0x50]
sub edi, 1
cmp dword [esp + 0x60], edi
jl 0x617eb3
mov eax, dword [esp + 0x60]
sub eax, edi
mov edi, eax
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x5c]
test ecx, ecx
mov eax, ecx
mov dword [esp + 0x8c], ecx
js 0x618082
mov dword [esp + 0x20], edx
add dword [esp + 0x5c], eax
add dword [esp + 0x58], eax
mov dword [esp], 1
call fcn.00615960
mov edx, dword [esp + 0x20]
mov dword [esp + 0x4c], eax
jmp 0x61706f
mov dword [esp], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0xa
call fcn.00615990
mov ebx, eax
mov edi, eax
jmp 0x617a3d
cmp dword [esp + 0xc0], 4
je 0x617d8d
cmp dword [esp + 0xc0], 5
jne 0x61757b
mov dword [esp + 0x6c], 1
jmp 0x617917
fstp st(0)
jmp 0x617b48
fstp st(0)
mov dword [esp + 0x40], 0
mov dword [esp + 0x4c], 0
mov ecx, dword [esp + 0xc4]
mov ebp, edx
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x30], 0x10
mov dword [esp + 0x4c], 0
neg ecx
mov dword [esp + 0x2c], ecx
jmp 0x617310
mov eax, dword [esp + 0x40]
mov dword [esp + 0x20], edx
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00615080
mov edx, dword [esp + 0x20]
test eax, eax
jns 0x6171d3
sub dword [esp + 0x28], 1
mov dword [esp], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0xa
call fcn.00615990
mov ecx, dword [esp + 0x70]
cmp dword [esp + 0x6c], 0
mov edx, dword [esp + 0x20]
mov dword [esp + 0x50], ecx
mov esi, eax
je 0x6171d3
mov eax, dword [esp + 0x4c]
mov dword [esp + 8], 0
mov dword [esp + 4], 0xa
mov dword [esp], eax
call fcn.00615990
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], eax
jmp 0x6171d3
cmp dword [esp + 0x48], 1
jne 0x61713a
mov ecx, dword [esp + 0xb0]
mov eax, dword [ecx + 4]
add eax, 1
cmp dword [esp + 0xb4], eax
jle 0x61713a
add dword [esp + 0x5c], 1
add dword [esp + 0x58], 1
mov dword [esp + 0x34], 1
jmp 0x617142
mov dword [esp + 0x3c], ebx
mov ebp, edx
mov edi, dword [esp + 0x40]
mov dword [esp + 0x8c], 1
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x30], edx
jmp 0x617c84
mov dword [esp], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0xa
call fcn.00615990
add dword [esp + 0x8c], 1
mov esi, eax
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.00618380
add eax, 0x30
mov byte [ebp], al
add ebp, 1
cmp ebx, dword [esp + 0x8c]
jg 0x617c62
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x54]
test eax, eax
je 0x61814d
cmp dword [esp + 0x54], 2
je 0x61818d
cmp dword [esi + 0x10], 1
jg 0x617ce2
jmp 0x6182e0
mov ebp, eax
movzx ecx, byte [ebp - 1]
lea eax, [ebp - 1]
cmp cl, 0x39
jne 0x61820d
cmp edx, eax
jne 0x617ce0
mov byte [edx], 0x31
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x30], 0x20
add ecx, 2
mov dword [esp + 0x2c], ecx
jmp 0x617310
fstp st(0)
mov edx, edi
mov eax, dword [esp + 0x54]
test eax, eax
je 0x618025
fstp st(0)
fstp st(0)
cmp dword [esp + 0x54], 1
je 0x617d50
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], 0x10
add eax, 1
mov dword [esp + 0x2c], eax
jmp 0x617356
mov ebp, eax
jmp 0x617d50
fstp st(0)
fstp st(0)
lea esi, [esi]
movzx ecx, byte [ebp - 1]
lea eax, [ebp - 1]
cmp cl, 0x39
jne 0x61822a
cmp edx, eax
jne 0x617d44
add dword [esp + 0x28], 1
mov eax, edx
mov ecx, 0x31
mov byte [edx], 0x30
mov byte [eax], cl
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], 0x20
add eax, 1
mov dword [esp + 0x2c], eax
jmp 0x617356
mov dword [esp + 0x6c], 1
jmp 0x616fc4
cmp dword [esp + 0x50], 0xe
mov dword [esp + 0x8c], 1
setbe cl
and ecx, eax
mov eax, 1
jmp 0x616ff3
mov dword [esp + 0xc4], 1
jmp 0x616fd3
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 0x20], edx
call fcn.00615aa0
mov edx, dword [esp + 0x20]
mov esi, eax
jmp 0x6170f4
cmp dword [esp + 0xc0], 2
jle 0x6171df
mov ecx, dword [esp + 0x50]
test ecx, ecx
jne 0x617b58
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x20], edx
mov dword [esp + 8], 0
mov dword [esp + 4], 5
mov dword [esp], ebp
call fcn.00615990
mov dword [esp], esi
mov dword [esp + 0x40], eax
mov dword [esp + 4], eax
call fcn.00615080
mov edx, dword [esp + 0x20]
test eax, eax
jle 0x617b58
mov eax, dword [esp + 0x28]
add eax, 2
mov dword [esp + 0x2c], eax
mov byte [edx], 0x31
lea ebp, [edx + 1]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x30], 0x20
mov dword [esp + 0x4c], 0
jmp 0x617310
mov ebp, dword [esp + 0xc4]
test ebp, ebp
jns 0x617653
mov edi, dword [esp + 0x50]
test edi, edi
jne 0x617b46
fmul dword [0x7ff3e0]
fld qword [esp + 0x40]
fxch st(1)
fucompp
fnstsw ax
sahf
jae 0x617b48
add ecx, 2
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x40], 0
mov dword [esp + 0x4c], 0
jmp 0x617e49
sub edi, dword [esp + 0x60]
add dword [esp + 0x68], edi
add dword [esp + 0x60], edi
xor edi, edi
jmp 0x617aba
fld st(0)
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x74], 0
jmp 0x6177ca
mov dword [esp + 4], ecx
jmp 0x617dd1
fstp st(0)
fstp st(0)
fstp st(0)
mov dword [esp + 0x2c], 2
mov dword [esp + 0x40], 0
mov dword [esp + 0x4c], 0
jmp 0x617e49
fnstcw word [esp + 0x7e]
fld qword [esp + 0x40]
mov ebp, edx
fmul qword [ecx*8 + 0x7ff298]
mov dword [esp + 0x8c], 1
movzx eax, word [esp + 0x7e]
mov ah, 0xc
fld dword [0x7ff3d4]
fxch st(2)
mov word [esp + 0x7c], ax
jmp 0x617f43
fmul st(2)
add eax, 1
mov dword [esp + 0x8c], eax
fldcw word [esp + 0x7c]
fist dword [esp + 0x78]
fldcw word [esp + 0x7e]
mov eax, dword [esp + 0x78]
test eax, eax
je 0x617f61
mov dword [esp + 0x78], eax
fild dword [esp + 0x78]
fsubp st(1)
add eax, 0x30
mov byte [ebp], al
mov eax, dword [esp + 0x8c]
add ebp, 1
cmp eax, ecx
jne 0x617f37
fstp st(2)
fxch st(1)
fld dword [0x7ff3e4]
fld st(2)
fadd st(1)
fxch st(2)
fucom st(2)
fnstsw ax
fstp st(2)
sahf
ja 0x61806d
fsubrp st(2)
fxch st(1)
fucomp st(1)
fnstsw ax
sahf
jbe 0x617627
fstp st(1)
fldz
fucompp
fnstsw ax
sahf
sete al
setnp cl
and eax, ecx
movzx eax, al
sub eax, 1
and eax, 0x10
mov dword [esp + 0x30], eax
jmp 0x617fc3
mov ebp, eax
cmp byte [ebp - 1], 0x30
lea eax, [ebp - 1]
je 0x617fc1
mov eax, dword [esp + 0x74]
add eax, 1
mov dword [esp + 0x2c], eax
jmp 0x617356
mov ebp, dword [esp + 0xb0]
sub edi, dword [esp + 0x48]
mov ecx, dword [ebp + 4]
lea eax, [edi + 1]
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x8c], eax
sub ebp, edi
mov edi, dword [esp + 0x60]
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x5c]
cmp dword [esp + 0x40], ecx
jge 0x617ad3
mov eax, dword [esp + 0x4c]
sub eax, ecx
add eax, 1
mov dword [esp + 0x8c], eax
jmp 0x617ad3
fadd st(0)
fucom st(1)
fnstsw ax
sahf
ja 0x617d48
fxch st(1)
fucompp
fnstsw ax
sahf
jne 0x618046
jp 0x618046
and cl, 1
jne 0x617d50
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x30], 0x10
mov dword [esp + 0x74], ecx
jmp 0x617fc3
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x618075
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x618075
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x28], ecx
jmp 0x617d50
sub ebp, ecx
xor eax, eax
mov dword [esp + 0x8c], 0
jmp 0x617ad3
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x4c], ebx
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x58]
test ecx, ecx
je 0x618251
cmp dword [esi + 0x10], 1
jle 0x618247
cmp dword [esp + 0x54], 2
je 0x6182b4
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x3c], edx
jmp 0x618109
mov dword [esp], esi
add ebp, 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0xa
call fcn.00615990
mov dword [esp + 4], ebx
mov esi, eax
mov dword [esp], eax
call fcn.00618380
mov edi, dword [esp + 0x30]
add eax, 0x30
mov dword [esp + 0x34], eax
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.00615080
test eax, eax
jle 0x6182c1
movzx ecx, byte [esp + 0x34]
mov byte [ebp], cl
mov dword [esp + 8], 0
mov dword [esp + 4], 0xa
mov dword [esp], edi
call fcn.00615990
cmp dword [esp + 0x4c], edi
mov dword [esp + 0x30], eax
jne 0x6180d5
mov dword [esp + 0x4c], eax
jmp 0x6180d5
mov dword [esp + 0x20], edx
mov dword [esp], esi
mov dword [esp + 4], 1
call fcn.00615710
mov esi, eax
mov eax, dword [esp + 0x40]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00615080
mov edx, dword [esp + 0x20]
cmp eax, 0
jg 0x617ce2
jne 0x61818d
test byte [esp + 0x34], 1
jne 0x617ce2
cmp dword [esi + 0x10], 1
jle 0x61831a
mov dword [esp + 0x30], 0x10
nop
jmp 0x6181a4
mov ebp, eax
cmp byte [ebp - 1], 0x30
lea eax, [ebp - 1]
je 0x6181a2
mov ecx, dword [esp + 0x28]
add ecx, 1
mov dword [esp + 0x2c], ecx
jmp 0x617310
mov eax, dword [edi + 4]
mov dword [esp + 0x20], edx
mov dword [esp], eax
call fcn.00615390
mov ecx, dword [esp + 0x4c]
mov edi, eax
lea ebp, [eax + 0xc]
mov eax, dword [ecx + 0x10]
add ecx, 0xc
mov dword [esp + 4], ecx
mov dword [esp], ebp
lea eax, [eax*4 + 8]
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov dword [esp], edi
mov dword [esp + 4], 1
call fcn.00615710
mov edx, dword [esp + 0x20]
mov edi, eax
jmp 0x61721d
add ecx, 1
mov byte [eax], cl
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], 0x20
add eax, 1
mov dword [esp + 0x2c], eax
jmp 0x617310
add ecx, 1
jmp 0x617d73
mov dword [esp + 0x4c], ebx
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x58]
jmp 0x617cba
cmp dword [esi + 0x14], 0
jne 0x6180bc
test eax, eax
mov dword [esp + 0x30], 0
jle 0x6182a4
mov dword [esp + 0x20], edx
mov dword [esp], esi
mov dword [esp + 4], 1
call fcn.00615710
mov esi, eax
mov eax, dword [esp + 0x40]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00615080
mov edx, dword [esp + 0x20]
cmp eax, 0
jle 0x618328
cmp dword [esp + 0x34], 0x39
je 0x6182d4
add dword [esp + 0x34], 1
mov dword [esp + 0x30], 0x20
cmp dword [esi + 0x10], 1
jg 0x6182b4
cmp dword [esi + 0x14], 0
je 0x6172f3
mov dword [esp + 0x30], 0x10
jmp 0x6172f3
cmp dword [esp + 0x34], 0x39
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x2c]
jne 0x6172e6
mov byte [ebp], 0x39
add ebp, 1
jmp 0x617ce2
cmp dword [esi + 0x14], 0
jne 0x617ce2
mov dword [esp + 0x30], 0
jmp 0x6181a4
mov eax, dword [esp + 0x74]
mov dword [esp + 0x30], 0x10
add eax, 1
mov dword [esp + 0x2c], eax
jmp 0x617356
jnp 0x61772d
jmp 0x6176ab
cmp dword [esi + 0x14], 0
nop
jne 0x618197
jmp 0x6182ea
nop
lea esi, [esi]
jne 0x61833d
test byte [esp + 0x34], 1
jne 0x618290
mov dword [esp + 0x30], 0x20
jmp 0x6182a4
cmp dword [esi + 0x10], 1
nop
jg 0x6182b4
cmp dword [esi + 0x14], 0
mov dword [esp + 0x30], 0
je 0x6172f3
jmp 0x6182b4
mov eax, 1
jmp 0x616f9a