Function at 0x10001000
Capabilities:
Inspect section memory permissions
Print debug messages

Disassembly:
push ebx
mov ebx, esp
and esp, 0xfffffff8
push edi
push esi
push ebp
sub esp, 0x4c
mov esi, dword [ebx + 8]
mov edx, dword [esi + 0x4bc]
mov al, 0
mov byte [esp + 0x3c], al
test edx, edx
jne 0x1000133b
fld qword [0x10320028]
fst qword [0x100914c0]
fstp qword [0x100915c0]
xor eax, eax
mov dword [esi + 0x14570], eax
fld qword [0x10320028]
fst qword [0x100914c8]
fstp qword [0x100915c8]
mov dword [esi + 0x14574], eax
fld qword [0x10320028]
fst qword [0x100914d0]
fstp qword [0x100915d0]
mov dword [esi + 0x14578], eax
fld qword [0x10320028]
fst qword [0x100914d8]
fstp qword [0x100915d8]
mov dword [esi + 0x1457c], eax
fld qword [0x10320028]
fst qword [0x100914e0]
fstp qword [0x100915e0]
mov dword [esi + 0x14580], eax
fld qword [0x10320028]
fst qword [0x100914e8]
fstp qword [0x100915e8]
mov dword [esi + 0x14584], eax
fld qword [0x10320028]
fst qword [0x100914f0]
fstp qword [0x100915f0]
mov dword [esi + 0x14588], eax
fld qword [0x10320028]
fst qword [0x100914f8]
fstp qword [0x100915f8]
mov dword [esi + 0x1458c], eax
fld qword [0x10320028]
fst qword [0x10091500]
fstp qword [0x10091600]
mov dword [esi + 0x14590], eax
fld qword [0x10320028]
fst qword [0x10091508]
fstp qword [0x10091608]
mov dword [esi + 0x14594], eax
fld qword [0x10320028]
fst qword [0x10091510]
fstp qword [0x10091610]
mov dword [esi + 0x14598], eax
fld qword [0x10320028]
fst qword [0x10091518]
fstp qword [0x10091618]
mov dword [esi + 0x1459c], eax
fld qword [0x10320028]
fst qword [0x10091520]
fstp qword [0x10091620]
mov dword [esi + 0x145a0], eax
fld qword [0x10320028]
fst qword [0x10091528]
fstp qword [0x10091628]
mov dword [esi + 0x145a4], eax
fld qword [0x10320028]
fst qword [0x10091530]
fstp qword [0x10091630]
mov dword [esi + 0x145a8], eax
fld qword [0x10320028]
fst qword [0x10091538]
fstp qword [0x10091638]
mov dword [esi + 0x145ac], eax
fld qword [0x10320028]
fst qword [0x10091540]
fstp qword [0x10091640]
mov dword [esi + 0x145b0], eax
fld qword [0x10320028]
fst qword [0x10091548]
fstp qword [0x10091648]
mov dword [esi + 0x145b4], eax
fld qword [0x10320028]
fst qword [0x10091550]
fstp qword [0x10091650]
mov dword [esi + 0x145b8], eax
fld qword [0x10320028]
fst qword [0x10091558]
fstp qword [0x10091658]
mov dword [esi + 0x145bc], eax
fld qword [0x10320028]
fst qword [0x10091560]
fstp qword [0x10091660]
mov dword [esi + 0x145c0], eax
fld qword [0x10320028]
fst qword [0x10091568]
fstp qword [0x10091668]
mov dword [esi + 0x145c4], eax
fld qword [0x10320028]
fst qword [0x10091570]
fstp qword [0x10091670]
mov dword [esi + 0x145c8], eax
fld qword [0x10320028]
fst qword [0x10091578]
fstp qword [0x10091678]
mov dword [esi + 0x145cc], eax
fld qword [0x10320028]
fst qword [0x10091580]
fstp qword [0x10091680]
mov dword [esi + 0x145d0], eax
fld qword [0x10320028]
fst qword [0x10091588]
fstp qword [0x10091688]
mov dword [esi + 0x145d4], eax
fld qword [0x10320028]
fst qword [0x10091590]
fstp qword [0x10091690]
mov dword [esi + 0x145d8], eax
fld qword [0x10320028]
fst qword [0x10091598]
fstp qword [0x10091698]
mov dword [esi + 0x145dc], eax
fld qword [0x10320028]
fst qword [0x100915a0]
fstp qword [0x100916a0]
mov dword [esi + 0x145e0], eax
fld qword [0x10320028]
fst qword [0x100915a8]
fstp qword [0x100916a8]
mov dword [esi + 0x145e4], eax
fld qword [0x10320028]
fst qword [0x100915b0]
fstp qword [0x100916b0]
mov dword [esi + 0x145e8], eax
fld qword [0x10320028]
fst qword [0x100915b8]
fstp qword [0x100916b8]
mov dword [esi + 0x145ec], eax
fld qword [0x10320028]
fstp qword [0x100916c0]
mov dword [0x100916c8], eax
mov dword [0x100916cc], eax
mov ecx, dword [esi + 0x14688]
mov eax, dword [esi + 0x14684]
cmp ecx, eax
jl 0x10001385
mov edx, dword [esi + 0x154]
test edx, edx
jle 0x1000136b
add edx, eax
cmp edx, dword [esi + 0x4bc]
jle 0x1000136b
xor eax, eax
add esp, 0x4c
pop ebp
pop esi
pop edi
mov esp, ebx
pop ebx
ret
push 0x1032036c
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, 0xffffff9c
add esp, 0x4c
pop ebp
pop esi
pop edi
mov esp, ebx
pop ebx
ret
lea edx, [esi + 0x145f0]
add ecx, ecx
add ecx, ecx
lea eax, [ecx + ecx]
add eax, eax
add eax, eax
add eax, eax
add eax, ecx
add eax, dword [esi + 0x14678]
mov ecx, dword [eax]
mov ebp, dword [eax + 4]
mov edi, dword [eax + 8]
mov dword [edx], ecx
mov ecx, dword [eax + 0xc]
mov dword [edx + 4], ebp
mov dword [edx + 8], edi
mov dword [edx + 0xc], ecx
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x10], ecx
mov ecx, dword [eax + 0x14]
mov dword [edx + 0x14], ecx
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x18], ecx
mov ecx, dword [eax + 0x1c]
mov dword [edx + 0x1c], ecx
mov ecx, dword [eax + 0x20]
mov dword [edx + 0x20], ecx
mov ecx, dword [eax + 0x24]
mov dword [edx + 0x24], ecx
mov ecx, dword [eax + 0x28]
mov dword [edx + 0x28], ecx
mov ecx, dword [eax + 0x2c]
mov dword [edx + 0x2c], ecx
mov ecx, dword [eax + 0x30]
mov dword [edx + 0x30], ecx
mov ecx, dword [eax + 0x34]
mov dword [edx + 0x34], ecx
mov ecx, dword [eax + 0x38]
mov dword [edx + 0x38], ecx
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x40]
mov dword [edx + 0x3c], ecx
mov dword [edx + 0x40], eax
mov eax, dword [esi]
cmp eax, 4
jne 0x10001494
mov ecx, dword [esi + 0x14688]
lea edx, [esi + 0x14634]
add ecx, ecx
add ecx, ecx
lea eax, [ecx + ecx]
add eax, eax
add eax, eax
add eax, eax
add eax, ecx
add eax, dword [esi + 0x1467c]
mov ebp, dword [eax]
mov edi, dword [eax + 4]
mov ecx, dword [eax + 8]
mov dword [edx], ebp
mov dword [edx + 4], edi
mov dword [edx + 8], ecx
mov ecx, dword [eax + 0xc]
mov dword [edx + 0xc], ecx
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x10], ecx
mov ecx, dword [eax + 0x14]
mov dword [edx + 0x14], ecx
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x18], ecx
mov ecx, dword [eax + 0x1c]
mov dword [edx + 0x1c], ecx
mov ecx, dword [eax + 0x20]
mov dword [edx + 0x20], ecx
mov ecx, dword [eax + 0x24]
mov dword [edx + 0x24], ecx
mov ecx, dword [eax + 0x28]
mov dword [edx + 0x28], ecx
mov ecx, dword [eax + 0x2c]
mov dword [edx + 0x2c], ecx
mov ecx, dword [eax + 0x30]
mov dword [edx + 0x30], ecx
mov ecx, dword [eax + 0x34]
mov dword [edx + 0x34], ecx
mov ecx, dword [eax + 0x38]
mov dword [edx + 0x38], ecx
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x40]
mov dword [edx + 0x3c], ecx
mov dword [edx + 0x40], eax
mov ebp, dword [esi + 0x145f0]
mov edi, dword [esi + 0x14600]
add dword [esi + 0x14688], 1
test edi, 0x20000000
jne 0x10002133
test edi, 0x10000000
jne 0x1000210b
test edi, 0x8000000
jne 0x1000215b
mov eax, dword [esi + 0x14560]
mov ecx, dword [esi + 0x1461c]
mov edx, eax
sar edx, 2
shr edx, 0x1d
add edx, eax
sar edx, 3
mov dword [esp + 0x38], edx
test ecx, 0x80000000
je 0x100014fe
mov edx, dword [ebx + 0xc]
mov dword [edx + 0x28], 1
mov al, 1
jmp 0x10001520
test edi, 0x40000000
je 0x10001514
mov edx, dword [ebx + 0xc]
mov dword [edx + 0x28], 2
mov al, 2
jmp 0x10001520
mov edx, dword [ebx + 0xc]
mov dword [edx + 0x28], 0
mov al, 0
cmp al, 1
jne 0x1000152a
xor eax, eax
mov dword [esp + 0x38], eax
push dword [esi + 0x4bc]
push esi
call fcn.10005bf8
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x10001572
mov edx, dword [esi]
cmp edx, 5
je 0x10001dda
mov edx, dword [esi + 0x47c]
cmp edx, 1
je 0x10001d84
mov edi, dword [esi + 0x14634]
fld qword [0x10320020]
fld qword [esi + 0x14510]
fdivr st(1)
jmp 0x100019b0
mov edx, dword [esi]
cmp edx, 5
je 0x10002104
mov edi, dword [esi + 0x14634]
mov edx, dword [ebx + 0xc]
fld qword [0x10320020]
fld qword [esi + 0x144f8]
mov edx, dword [edx + 0x28]
cmp edx, 1
mov dword [esp + 0x28], edx
je 0x100020d3
mov dword [esp], edi
fild dword [esp]
fdivrp st(1)
mov edx, dword [esi + 0x14600]
fld qword [esi + 0x14510]
and edx, 0x40000000
mov dword [esp + 0x34], edx
je 0x100015cc
fld qword [esi + 0x14518]
fdivr st(1)
fmulp st(2)
mov edx, dword [esi + 0x250]
test edx, edx
jne 0x10001611
fild dword [esi + 0x24c]
fld st(3)
fdiv st(2)
fld qword [0x100916c0]
fdivr st(2), st(0)
fxch st(2)
fnstcw word [esp + 8]
movzx eax, word [esp + 8]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x18]
fldcw word [esp + 8]
mov edi, dword [esp + 0x18]
jmp 0x10001693
fild dword [esi + 0x24c]
fld st(3)
fdiv st(2)
fld qword [0x100916c0]
fld qword [0x100916c0]
fmul st(5)
fmul st(2)
fdivrp st(3)
fxch st(2)
fnstcw word [esp + 8]
movzx eax, word [esp + 8]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x18]
fldcw word [esp + 8]
mov edi, dword [esp + 0x18]
mov eax, edi
cdq
xor eax, edx
sub eax, edx
fld st(1)
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fxch st(1)
fabs
fcompp
fnstsw ax
sahf
jae 0x10001693
fxch st(1)
fnstcw word [esp + 8]
movzx eax, word [esp + 8]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fist dword [esp + 0x18]
fldcw word [esp + 8]
mov edi, dword [esp + 0x18]
fxch st(1)
mov edx, dword [esi + 0x21c]
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
fsubp st(2)
test edx, edx
je 0x10001869
mov edx, dword [esp + 0x28]
cmp edx, 1
je 0x10001ed6
fxch st(3)
fcom st(2)
fnstsw ax
sahf
jbe 0x1000177c
fcom qword [esi + 0x14538]
fnstsw ax
sahf
jb 0x100016e5
fstp st(2)
fld qword [esi + 0x14550]
fsub qword [esi + 0x14558]
fmulp st(2)
jmp 0x10001816
mov edx, dword [esi + 0x230]
cmp edx, 2
je 0x1000174f
cmp edx, 1
jne 0x10001712
fsubr st(2), st(0)
fxch st(2)
fmul qword [esi + 0x14558]
fdiv qword [esi + 0x14548]
fsubr qword [esi + 0x14550]
fmulp st(2)
jmp 0x10001816
fldz
test edx, edx
jne 0x10002183
fstp st(0)
fsubr st(2), st(0)
fxch st(2)
fmul qword [0x10320008]
fdiv qword [esi + 0x14548]
fmul qword [0x10320010]
fcos
fadd qword [section..data1]
fmul qword [esi + 0x14558]
fadd qword [esi + 0x14550]
fmulp st(2)
jmp 0x10001816
fsubr st(2), st(0)
fxch st(2)
fmul qword [0x10320008]
fdiv qword [esi + 0x14548]
fmul qword [0x10320010]
fsin
fchs
fmul qword [esi + 0x14558]
fadd qword [esi + 0x14550]
fmulp st(2)
jmp 0x10001816
fcom qword [esi + 0x14530]
fnstsw ax
sahf
ja 0x1000178e
fstp st(2)
jmp 0x10001816
mov edx, dword [esi + 0x230]
cmp edx, 2
je 0x100017ee
cmp edx, 1
jne 0x100017b8
fsubr st(2), st(0)
fxch st(2)
fmul qword [esi + 0x14558]
fdiv qword [esi + 0x14540]
fsubr qword [esi + 0x14550]
fmulp st(2)
jmp 0x10001816
fldz
test edx, edx
jne 0x1000218c
fstp st(0)
fsubr st(2), st(0)
fxch st(2)
fmul qword [0x10320008]
fdiv qword [esi + 0x14540]
fmul qword [0x10320010]
fcos
fsubr st(4)
fmul qword [esi + 0x14558]
fadd qword [esi + 0x14550]
fmulp st(2)
jmp 0x10001816
fsubr st(2), st(0)
fxch st(2)
fmul qword [0x10320008]
fdiv qword [esi + 0x14540]
fmul qword [0x10320010]
fsin
fchs
fmul qword [esi + 0x14558]
fadd qword [esi + 0x14550]
fmulp st(2)
mov edx, dword [esp + 0x34]
test edx, edx
je 0x10001828
fld st(2)
fmul qword [esi + 0x14518]
fmulp st(2)
fxch st(1)
fmul qword [esi + 0x14520]
fadd qword [esi + 0x14528]
fnstcw word [esp + 8]
movzx eax, word [esp + 8]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fist dword [esp + 0x18]
fldcw word [esp + 8]
fild dword [esp + 0x18]
fxch st(1)
faddp st(2)
fsubp st(1)
mov edx, dword [esp + 0x18]
add edi, edx
jmp 0x10001961
mov eax, dword [esi + 0x214]
mov edx, dword [esi + 0x218]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], edx
add eax, edx
je 0x1000191b
mov edx, dword [esp + 0x28]
cmp edx, 1
je 0x1000191b
fxch st(3)
fcom st(2)
fnstsw ax
fsub st(2), st(0)
fld qword [esi + 0x14520]
fld qword [0x10320018]
sahf
jbe 0x100018c1
mov edx, dword [esp + 0x30]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fmulp st(5)
fmulp st(4)
fxch st(3)
faddp st(1)
fmulp st(2)
jmp 0x100018d7
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fmulp st(5)
fmulp st(4)
fxch st(3)
faddp st(1)
fmulp st(2)
mov edx, dword [esp + 0x34]
test edx, edx
je 0x100018e9
fld st(2)
fmul qword [esi + 0x14518]
fmulp st(2)
fxch st(1)
fnstcw word [esp + 8]
movzx eax, word [esp + 8]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fist dword [esp + 0x18]
fldcw word [esp + 8]
fild dword [esp + 0x18]
fxch st(1)
faddp st(2)
fsubp st(1)
mov edx, dword [esp + 0x18]
add edi, edx
jmp 0x10001961
fstp st(2)
mov edx, dword [esp + 0x34]
test edx, edx
je 0x1000192f
fld st(1)
fmul qword [esi + 0x14518]
fmulp st(3)
fxch st(2)
fnstcw word [esp + 8]
movzx eax, word [esp + 8]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fist dword [esp + 0x18]
fldcw word [esp + 8]
fild dword [esp + 0x18]
fxch st(1)
faddp st(3)
fsubp st(2)
mov edx, dword [esp + 0x18]
add edi, edx
fxch st(1)
cmp edi, ebp
jle 0x1000197b
sub edi, ebp
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
faddp st(1)
mov edi, ebp
fstp qword [0x100916c0]
jmp 0x100019b0
mov edx, dword [esp + 0x28]
cmp edx, 1
je 0x100020a3
mov edx, dword [esp + 0x34]
fstp qword [0x100916c0]
test edx, edx
je 0x100019a4
mov edx, dword [esi + 0x144e8]
cmp edx, edi
jle 0x100019a2
mov edi, edx
jmp 0x100019b0
mov edx, dword [esi + 0x144ec]
cmp edx, edi
jle 0x100019b0
mov edi, edx
mov edx, dword [ebx + 0xc]
mov dword [esi + 0x4e0], edi
mov edx, dword [edx + 0x28]
cmp edx, 1
je 0x10001fef
mov edx, dword [esp + 0x38]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
fmulp st(1)
fmulp st(1)
fnstcw word [esp + 8]
movzx eax, word [esp + 8]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x18]
fldcw word [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x14560]
mov dword [esp + 0x38], eax
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x34]
cmp edx, eax
jle 0x10001a25
mov ecx, dword [esp + 0x38]
mov edx, dword [esi + 0x244]
mov dword [esp + 0x40], edi
imul edi, edx
mov dword [esp + 0x38], edx
mov eax, 0x51eb851f
imul edi
sar edi, 0x1f
sar edx, 5
sub edx, edi
mov edi, dword [esp + 0x40]
cmp ecx, edx
jle 0x10001a69
cmp ecx, edi
jle 0x10001a65
imul ecx, dword [esp + 0x38]
mov eax, 0x51eb851f
imul ecx
sar ecx, 0x1f
sar edx, 5
sub edx, ecx
add edi, edx
jmp 0x10001a97
mov dword [esp + 0x40], edi
imul edi, dword [esi + 0x248]
mov eax, 0x51eb851f
imul edi
sar edi, 0x1f
sar edx, 5
sub edi, edx
mov dword [esp + 0x38], edi
cmp ecx, edi
mov edi, dword [esp + 0x40]
jge 0x10001a95
add edi, dword [esp + 0x38]
jmp 0x10001a97
add edi, ecx
mov edx, dword [esi + 0x144e4]
cmp edi, edx
jle 0x10001aa9
mov al, 1
mov byte [esp + 0x3c], al
mov edi, edx
mov eax, dword [esi + 0x1461c]
test eax, 0x80000000
je 0x10001ac4
mov ecx, dword [esi + 0x144f0]
cmp ecx, edi
jg 0x10001ac2
mov ecx, edi
jmp 0x10001aec
mov ecx, dword [esi + 0x14600]
test ecx, 0x40000000
je 0x10001ae0
mov ecx, dword [esi + 0x144e8]
cmp ecx, edi
jg 0x10001ade
mov ecx, edi
jmp 0x10001aec
mov ecx, dword [esi + 0x144ec]
cmp ecx, edi
jg 0x10001aec
mov ecx, edi
and eax, 0x7fffffff
imul eax, ebp
mov dword [esi + 0x4d8], ebp
mov dword [esi + 0x4dc], ecx
cdq
idiv ecx
mov edx, eax
test edx, edx
jg 0x10001b1a
fstp st(0)
mov eax, dword [ebx + 0xc]
mov dword [eax + 0x24], 1
jmp 0x10001c12
cmp edx, 0x1f
jle 0x10001b30
fstp st(0)
mov eax, dword [ebx + 0xc]
mov dword [eax + 0x24], 0x1f
jmp 0x10001c12
mov edi, dword [ebx + 0xc]
mov dword [edi + 0x24], edx
mov edi, dword [edi + 0x28]
cmp edi, 1
je 0x10002195
mov edi, dword [esi + 0x14600]
test edi, 0x40000000
je 0x10001bb2
mov edi, dword [esi + 0x1461c]
and edi, 0x7fffffff
imul ebp, edi
mov dword [esp + 0x20], ebp
fild dword [esp + 0x20]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fdivr st(2)
fmulp st(1)
fadd qword [edx*8 + 0x100914c0]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fsubp st(1)
fcom st(1)
fxch st(1)
fstp st(0)
fnstsw ax
sahf
jb 0x10001ba9
fld qword [section..data1]
faddp st(1)
mov ecx, dword [ebx + 0xc]
fstp qword [edx*8 + 0x100914c0]
add edx, 1
mov dword [ecx + 0x24], edx
jmp 0x10001c12
fstp qword [edx*8 + 0x100914c0]
jmp 0x10001c12
mov edi, dword [esi + 0x1461c]
and edi, 0x7fffffff
imul ebp, edi
mov dword [esp + 0x20], ebp
fild dword [esp + 0x20]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fdivr st(2)
fmulp st(1)
fadd qword [edx*8 + 0x100915c0]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fsubp st(1)
fcom st(1)
fxch st(1)
fstp st(0)
fnstsw ax
sahf
jb 0x10001c0b
fld qword [section..data1]
faddp st(1)
mov ecx, dword [ebx + 0xc]
fstp qword [edx*8 + 0x100915c0]
add edx, 1
mov dword [ecx + 0x24], edx
jmp 0x10001c12
fstp qword [edx*8 + 0x100915c0]
push dword [esi + 0x4bc]
push esi
call fcn.10005bf8
add esp, 8
test eax, eax
jne 0x10001d78
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + 0x28]
cmp edx, 1
je 0x10001fa4
mov eax, dword [ebx + 0xc]
mov edx, dword [esi + 0x17c]
mov ecx, dword [eax + 0x24]
cmp edx, ecx
mov edi, edx
jl 0x10001c4c
mov edi, ecx
mov edx, dword [0x100916cc]
mov dword [eax + 0x24], edi
mov ebp, dword [esi + 0x178]
cmp ebp, edi
mov ecx, ebp
jg 0x10001c63
mov ecx, edi
mov dword [eax + 0x24], ecx
test edx, edx
jne 0x10001c77
mov eax, dword [0x100916c8]
test eax, eax
je 0x10001d54
mov al, byte [esp + 0x3c]
test al, al
jne 0x10001d60
mov eax, dword [esi + 0x14600]
test eax, 0x40000000
je 0x10001cda
mov edx, dword [0x100916c8]
lea eax, [edx + 2]
cmp ecx, eax
jle 0x10001cba
push 0x103203c8
mov edx, dword [ebx + 0xc]
mov dword [edx + 0x24], eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [ebx + 0xc]
mov edx, dword [0x100916c8]
mov ecx, dword [eax + 0x24]
add edx, 0xfffffffe
cmp ecx, edx
jge 0x10001d1c
push 0x103203fc
mov eax, dword [ebx + 0xc]
mov dword [eax + 0x24], edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x24]
jmp 0x10001d1c
lea eax, [edx + 2]
cmp ecx, eax
jle 0x10001cfe
push 0x10320434
mov edx, dword [ebx + 0xc]
mov dword [edx + 0x24], eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [ebx + 0xc]
mov edx, dword [0x100916cc]
mov ecx, dword [eax + 0x24]
add edx, 0xfffffffe
cmp ecx, edx
jge 0x10001d1c
push 0x10320468
mov eax, dword [ebx + 0xc]
mov dword [eax + 0x24], edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x24]
mov eax, dword [esi + 0x1461c]
test eax, 0x80000000
je 0x10001d37
mov dword [0x100916c8], ecx
mov dword [0x100916cc], ecx
jmp 0x10001d60
mov eax, dword [esi + 0x14600]
test eax, 0x40000000
je 0x10001d4c
mov dword [0x100916c8], ecx
jmp 0x10001d60
mov dword [0x100916cc], ecx
jmp 0x10001d60
mov al, byte [esp + 0x3c]
test al, al
je 0x10001f99
mov eax, dword [esi + 0x128]
cmp eax, 3
je 0x10001f5a
cmp eax, 4
je 0x10001f21
xor eax, eax
add esp, 0x4c
pop ebp
pop esi
pop edi
mov esp, ebx
pop ebx
ret
mov eax, dword [esi + 0x484]
mov edx, dword [esi + 0x488]
cmp eax, edx
je 0x10001da7
mov ecx, dword [ebx + 0xc]
mov edi, dword [ecx + 0x28]
cmp edi, 1
je 0x10001dd2
mov eax, dword [ebx + 0xc]
mov dword [eax + 0x24], edx
jmp 0x10001db4
mov eax, dword [ebx + 0xc]
mov dword [eax + 0x28], 0xffffffff
mov dword [eax + 0x24], edx
mov dword [esi + 0x4d8], ebp
mov dword [esi + 0x4dc], ebp
mov dword [esi + 0x4e0], ebp
xor eax, eax
add esp, 0x4c
pop ebp
pop esi
pop edi
mov esp, ebx
pop ebx
ret
mov edx, dword [ebx + 0xc]
mov dword [edx + 0x24], eax
jmp 0x10001db4
mov edx, dword [esi + 0x47c]
test edx, edx
je 0x10001e56
cmp edx, 2
je 0x10001e56
cmp edx, 1
jne 0x10001e43
mov edx, dword [esi + 0x484]
mov eax, dword [esi + 0x488]
cmp edx, eax
je 0x10001e18
mov ecx, dword [ebx + 0xc]
mov edi, dword [ecx + 0x28]
test edi, edi
je 0x10001e10
mov eax, dword [ebx + 0xc]
mov dword [eax + 0x24], edx
jmp 0x10001e25
mov edx, dword [ebx + 0xc]
mov dword [edx + 0x24], eax
jmp 0x10001e25
mov edx, dword [ebx + 0xc]
mov dword [edx + 0x28], 0xffffffff
mov dword [edx + 0x24], eax
mov dword [esi + 0x4d8], ebp
mov dword [esi + 0x4dc], ebp
mov dword [esi + 0x4e0], ebp
xor eax, eax
add esp, 0x4c
pop ebp
pop esi
pop edi
mov esp, ebx
pop ebx
ret
fld qword [0x10320020]
fld qword [esi + 0x14510]
fdivr st(1)
jmp 0x100019b0
fld qword [0x10320020]
mov dword [esp + 0x20], ebp
fild dword [esp + 0x20]
cmp ecx, 1
je 0x10001eaa
fld qword [esi + 0x14508]
fdivp st(1)
fnstcw word [esp + 8]
movzx eax, word [esp + 8]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x18]
fldcw word [esp + 8]
mov edi, dword [esp + 0x18]
mov edx, dword [ebx + 0xc]
mov dword [edx + 0x28], 0xffffffff
fld qword [esi + 0x14510]
fdivr st(1)
jmp 0x100019b0
fld qword [esi + 0x14500]
fdivp st(1)
fnstcw word [esp + 8]
movzx eax, word [esp + 8]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x18]
fldcw word [esp + 8]
mov edi, dword [esp + 0x18]
jmp 0x10001e93
fstp st(2)
mov edx, dword [esp + 0x34]
test edx, edx
je 0x10001eea
fld st(1)
fmul qword [esi + 0x14518]
fmulp st(3)
fxch st(2)
fnstcw word [esp + 8]
movzx eax, word [esp + 8]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fist dword [esp + 0x18]
fldcw word [esp + 8]
fild dword [esp + 0x18]
fxch st(1)
faddp st(3)
fsubp st(2)
mov edx, dword [esp + 0x18]
add edi, edx
fxch st(1)
jmp 0x10001961
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + 0x24]
cmp edx, 4
jge 0x10001f33
mov ecx, 0x10
jmp 0x10001f38
mov ecx, 0x20
mov eax, dword [ebx + 0xc]
or ecx, dword [eax]
cmp edx, 4
jge 0x10001f49
mov eax, 0xffffffdf
jmp 0x10001f4e
mov eax, 0xffffffef
and ecx, eax
mov eax, dword [ebx + 0xc]
mov dword [eax], ecx
jmp 0x10001d78
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + 0x24]
cmp edx, 4
jge 0x10001f6c
mov ecx, 0x20
jmp 0x10001f71
mov ecx, 0x10
mov eax, dword [ebx + 0xc]
or ecx, dword [eax]
cmp edx, 4
jge 0x10001f82
mov eax, 0xffffffef
jmp 0x10001f87
mov eax, 0xffffffdf
and ecx, eax
mov eax, dword [ebx + 0xc]
mov dword [eax], ecx
mov eax, dword [esi + 0x128]
jmp 0x10001d6f
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x24]
jmp 0x10001d1c
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + 0x24]
mov eax, dword [esi + 0x170]
cmp edx, eax
jge 0x10001fcb
push 0x10320390
mov edx, dword [ebx + 0xc]
mov dword [edx + 0x24], eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + 0x24]
mov eax, dword [esi + 0x174]
cmp edx, eax
jle 0x10001d54
push 0x103203ac
mov edx, dword [ebx + 0xc]
mov dword [edx + 0x24], eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x10001d54
test ecx, ecx
jne 0x100019c5
mov edx, dword [esi + 0x14564]
mov ecx, dword [esi + edx*4 + 0x4e4]
sub ecx, dword [esi + edx*4 + 0x4e0]
mov edx, dword [esi + 0x204]
cmp ecx, edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], edx
jge 0x100019c5
mov edx, dword [esi + 0x138]
mov dword [esp + 0x28], edx
sub ecx, edx
mov dword [esp + 0x30], ecx
test ecx, ecx
jl 0x100019c5
mov eax, dword [esi + 0x208]
imul eax, edi
lea edx, [edi + edi]
add edx, edx
sub edx, edi
lea ecx, [edi + edx*8]
add ecx, ecx
add ecx, ecx
sub ecx, eax
mov eax, 0x51eb851f
imul ecx
sar ecx, 0x1f
sar edx, 5
sub edx, ecx
mov ecx, 1
cmp edx, 1
jg 0x1000206d
mov edx, ecx
mov ecx, dword [esp + 0x30]
imul edi, ecx
mov dword [esp + 0x34], edx
neg edx
imul ecx, edx
add edi, ecx
mov eax, edi
cdq
mov ecx, dword [esp + 0x2c]
mov edi, 1
sub ecx, dword [esp + 0x28]
idiv ecx
mov edx, dword [esp + 0x34]
add edx, eax
cmp edx, 1
jle 0x1000209e
mov edi, edx
jmp 0x100019c5
mov edx, dword [esi + 0x144f0]
cmp edi, edx
jge 0x100020c8
neg edi
add edi, edx
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
mov edi, edx
fsubp st(1)
fstp qword [0x100916c0]
jmp 0x100019b0
fstp qword [0x100916c0]
jmp 0x100019b0
mov dword [esp + 0x44], ecx
mov eax, 0x51eb851f
mov ecx, dword [esi + 0x200]
imul ecx, edi
imul ecx
sar ecx, 0x1f
sar edx, 5
sub edx, ecx
mov ecx, dword [esp + 0x44]
add edi, edx
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
fdivrp st(1)
jmp 0x100015aa
mov edi, ebp
jmp 0x10001583
mov edx, dword [ebx + 0xc]
mov dword [esi + 0x4d8], ebp
mov dword [esi + 0x4dc], ebp
mov dword [esi + 0x4e0], ebp
xor eax, eax
mov dword [edx + 0x28], 4
add esp, 0x4c
pop ebp
pop esi
pop edi
mov esp, ebx
pop ebx
ret
mov edx, dword [ebx + 0xc]
mov dword [esi + 0x4d8], ebp
mov dword [esi + 0x4dc], ebp
mov dword [esi + 0x4e0], ebp
xor eax, eax
mov dword [edx + 0x28], 3
add esp, 0x4c
pop ebp
pop esi
pop edi
mov esp, ebx
pop ebx
ret
mov edx, dword [ebx + 0xc]
mov dword [esi + 0x4d8], ebp
mov dword [esi + 0x4dc], ebp
mov dword [esi + 0x4e0], ebp
xor eax, eax
mov dword [edx + 0x28], 5
add esp, 0x4c
pop ebp
pop esi
pop edi
mov esp, ebx
pop ebx
ret
fstp st(1)
fstp st(2)
jmp 0x10001816
fstp st(1)
fstp st(2)
jmp 0x10001816
fstp st(0)
jmp 0x10001c12