Function at 0x4f74a0
Capabilities:
Access peb ldr_data
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x935e71
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7a4
push ebx
push esi
push edi
push fcn.00911ee2
push fcn.00911f0c
push 0x64
lea eax, [esp + 0x30c]
push 4
mov esi, ecx
push eax
call fcn.00912870
push fcn.00911ee2
push fcn.00911f0c
push 0x64
lea ecx, [esp + 0x7c]
xor ebx, ebx
push 4
push ecx
mov dword [esp + 0x7cc], ebx
call fcn.00912870
push fcn.00911ee2
push fcn.00911f0c
push 0x64
lea edx, [esp + 0x62c]
push 4
push edx
mov byte [esp + 0x7cc], 1
call fcn.00912870
push fcn.00911ee2
push fcn.00911f0c
push 0x64
lea eax, [esp + 0x49c]
push 4
push eax
mov byte [esp + 0x7cc], 2
call fcn.00912870
lea ecx, [esp + 0xc]
mov byte [esp + 0x7b8], 3
call fcn.00911f0c
lea ecx, [esp + 0x30]
mov byte [esp + 0x7b8], 4
call fcn.00911f0c
lea ecx, [esp + 0x38]
mov byte [esp + 0x7b8], 5
call fcn.00911f0c
lea ecx, [esp + 0x40]
mov byte [esp + 0x7b8], 6
call fcn.00911f0c
mov ecx, dword [0xa8e738]
lea edx, [esp + 0x30]
push ecx
push 0xa
push 0x25
push 0xa771b0
push edx
mov byte [esp + 0x7cc], 7
call fcn.00911f42
mov eax, dword [0xa8e73c]
lea ecx, [esp + 0x4c]
push eax
push 0xa
push 0x25
push str._c_d.4f
push ecx
call fcn.00911f42
mov eax, dword [0xa8fd20]
add esp, 0x28
mov edi, 0xa76474
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [edi]
jne 0x4f75f8
test cl, cl
je 0x4f75f4
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [edi + 1]
jne 0x4f75f8
add eax, 2
add edi, 2
test cl, cl
jne 0x4f75d4
xor eax, eax
jmp 0x4f75fd
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4f762c
lea eax, [esp + 0x490]
lea ecx, [esp + 0x620]
push eax
lea edx, [esp + 0x74]
push ecx
lea eax, [esp + 0x308]
push edx
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x58], esp
push 0xa7a850
jmp 0x4f7655
lea ecx, [esp + 0x490]
lea edx, [esp + 0x620]
push ecx
lea eax, [esp + 0x74]
push edx
lea ecx, [esp + 0x308]
push eax
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x58], esp
push 0xa7a834
call fcn.00911edc
mov ecx, esi
call fcn.004f4de0
mov edx, dword [esi + 0x2c68]
mov eax, dword [esi + 0x2c6c]
mov ecx, dword [esi + 0x2c28]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x4c], edx
mov edx, dword [esi + 0x2c2c]
mov dword [esp + 0x18], ebx
mov ebx, dword [ebp + 8]
mov dword [esp + 0x50], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + eax*4 + 0x300]
lea eax, [esp + eax*4 + 0x300]
mov eax, dword [ecx - 8]
test eax, eax
je 0x4f8449
mov edx, dword [esp + 0x18]
lea eax, [esp + edx*4 + 0x70]
mov eax, dword [esp + edx*4 + 0x70]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4f8449
mov ecx, edx
push 0xa7a818
lea ecx, [esp + ecx*4 + 0x74]
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x4f770e
mov edx, dword [esp + 0x18]
push 0xa7a810
lea ecx, [esp + edx*4 + 0x74]
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x4f770e
mov eax, dword [esp + 0x18]
push 0xa7a808
lea ecx, [esp + eax*4 + 0x74]
call fcn.009121e8
cmp eax, 0xffffffff
je 0x4f8449
mov ecx, dword [0xa8e750]
mov edx, dword [ebp + 0x10]
mov eax, dword [edi]
add ecx, edx
sub eax, ecx
push 0
mov dword [edi], eax
mov ecx, eax
mov eax, dword [esi + 0x598]
push 1
push eax
mov eax, dword [esi + 0x9cc]
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov ecx, esi
push eax
push ebx
call fcn.00460a00
mov al, byte [esi + 0x516]
test al, al
je 0x4f77fc
mov ecx, dword [esp + 0x18]
lea eax, [esp + ecx*4 + 0x300]
lea ecx, [esp + 0xc]
push eax
call fcn.00911f3c
mov edx, dword [esp + 0xc]
mov eax, dword [esi + 0x730]
mov ecx, dword [edx - 8]
sub eax, ecx
push ecx
cdq
sub eax, edx
lea ecx, [esp + 0x10]
sar eax, 1
imul eax, dword [esi + 0x9c8]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
lea eax, [esp + 0x60]
push eax
call fcn.00912044
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x7bc], 8
call fcn.00911f3c
lea ecx, [esp + 0x5c]
mov byte [esp + 0x7b8], 7
call fcn.00911ee2
mov ecx, dword [esi + 0x5a0]
test ecx, ecx
jle 0x4f77fc
mov eax, dword [esi + 0x730]
imul eax, dword [esi + 0x9c8]
cdq
sub eax, edx
mov edx, dword [esp + 0x10]
sar eax, 1
sub ecx, eax
mov eax, dword [esp + 0x40]
lea ecx, [ecx + edx - 3]
mov edx, dword [eax - 8]
mov dword [esp + 0x10], edx
mov edx, dword [ebx]
push dword [esp + 0x10]
push eax
mov eax, dword [edi]
push eax
push ecx
mov ecx, ebx
call dword [edx + 0x64]
mov al, byte [esi + 0x517]
test al, al
je 0x4f78a4
mov ecx, dword [esi + 0x9a4]
xor eax, eax
mov edx, ecx
lea edi, [esp + 0x200]
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
lea edx, [esp + 0x200]
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x734]
sub ecx, 2
lea eax, [esp + eax*4 + 0x70]
push ecx
mov eax, dword [eax]
push eax
push edx
nop
call fcn.00b15922
lea eax, [esp + 0x20c]
lea ecx, [esp + 0x18]
push eax
push 0xa76fa0
push ecx
call fcn.00911f42
mov eax, dword [esi + 0x9c8]
mov edx, dword [ebp + 0xc]
imul eax, dword [esi + 0x734]
mov ecx, dword [edx]
add esp, 0x18
cdq
sub eax, edx
mov edx, eax
mov eax, dword [esi + 0x5a4]
sar edx, 1
sub eax, edx
mov edx, dword [esp + 0xc]
sub eax, 3
mov edi, dword [edx - 8]
mov dword [esp + 0x10], edi
mov edi, dword [ebx]
push dword [esp + 0x10]
push edx
push ecx
push eax
mov ecx, ebx
call dword [edi + 0x64]
mov edi, dword [ebp + 0xc]
mov al, byte [esi + 0x518]
test al, al
je 0x4f7ccc
mov eax, dword [esp + 0x18]
lea ecx, [esp + eax*4 + 0x620]
push ecx
lea ecx, [esp + 0x10]
call fcn.00911f3c
mov al, byte [0xa8e784]
test al, al
je 0x4f7b0c
lea ecx, [esp + 0x3c]
call fcn.00911f0c
mov edx, dword [esp + 0xc]
push 0xa76f28
lea ecx, [esp + 0x10]
mov byte [esp + 0x7bc], 9
mov eax, dword [edx - 8]
mov dword [esp + 0x14], eax
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x4f79ad
push 0xa77194
lea ecx, [esp + 0x10]
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x4f79ad
push 0xa77190
lea ecx, [esp + 0x10]
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x4f79ad
push 0xa76f34
lea ecx, [esp + 0x10]
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x4f79ad
mov ecx, dword [esi + 0x738]
mov edx, dword [esi + 0x9c8]
mov eax, ecx
sub eax, dword [esp + 0x10]
imul eax, edx
cdq
sub eax, edx
sar eax, 1
cdq
sub eax, edx
mov edx, eax
mov eax, ecx
imul eax, dword [esi + 0x9c8]
sar edx, 1
mov ecx, edx
cdq
sub eax, edx
mov edx, dword [esi + 0x5a8]
sar eax, 1
sub ecx, eax
mov eax, dword [esp + 0xc]
lea ecx, [ecx + edx - 3]
mov edx, dword [eax - 8]
mov dword [esp + 0x10], edx
mov edx, dword [ebx]
push dword [esp + 0x10]
push eax
mov eax, dword [edi]
push eax
push ecx
mov ecx, ebx
call dword [edx + 0x64]
mov byte [esp + 0x7b8], 7
lea ecx, [esp + 0x3c]
jmp 0x4f7cc7
lea eax, [esp + 0x58]
push 1
push eax
lea ecx, [esp + 0x14]
call fcn.0091218e
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x7bc], 0xa
call fcn.00911f3c
lea ecx, [esp + 0x58]
mov byte [esp + 0x7b8], 9
call fcn.00911ee2
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x60]
lea eax, [ecx - 1]
lea ecx, [esp + 0xc]
push eax
push edx
mov dword [esp + 0x24], eax
call fcn.00912044
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x7bc], 0xb
call fcn.00911f3c
lea ecx, [esp + 0x60]
mov byte [esp + 0x7b8], 9
call fcn.00911ee2
mov ecx, dword [esi + 0x738]
mov edx, dword [esi + 0x9c8]
mov eax, ecx
sub eax, dword [esp + 0x10]
imul eax, edx
cdq
sub eax, edx
sar eax, 1
cdq
sub eax, edx
mov edx, eax
mov eax, ecx
imul eax, dword [esi + 0x9c8]
sar edx, 1
mov ecx, edx
cdq
sub eax, edx
mov edx, dword [esi + 0x5a8]
sar eax, 1
sub ecx, eax
lea eax, [ecx + edx - 3]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx - 8]
mov dword [esp + 0x20], edx
mov edx, dword [ebx]
push dword [esp + 0x20]
push ecx
mov ecx, dword [edi]
push ecx
push eax
mov ecx, ebx
call dword [edx + 0x64]
mov eax, dword [ebx]
lea ecx, [esi + 0x2154]
push ecx
mov ecx, ebx
call dword [eax + 0x30]
mov eax, dword [esi + 0x738]
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 0x9c8]
sub eax, edx
imul eax, ecx
cdq
sub eax, edx
sar eax, 1
cdq
sub eax, edx
mov edx, eax
mov eax, dword [esp + 0x1c]
sar edx, 1
imul eax, ecx
mov ecx, edx
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov eax, dword [esi + 0x738]
imul eax, dword [esi + 0x9c8]
cdq
sub eax, edx
mov edx, dword [esi + 0x5a8]
sar eax, 1
sub ecx, eax
lea eax, [ecx + edx - 3]
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx - 8]
mov dword [esp + 0x1c], edx
mov edx, dword [ebx]
push dword [esp + 0x1c]
push ecx
mov ecx, dword [edi]
push ecx
push eax
mov ecx, ebx
call dword [edx + 0x64]
mov eax, dword [ebx]
lea ecx, [esi + 0x2144]
push ecx
mov ecx, ebx
call dword [eax + 0x30]
mov byte [esp + 0x7b8], 7
lea ecx, [esp + 0x3c]
jmp 0x4f7cc7
push 0xa76f28
lea ecx, [esp + 0x10]
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x4f7b94
push 0xa77194
lea ecx, [esp + 0x10]
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x4f7b94
push 0xa77190
lea ecx, [esp + 0x10]
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x4f7b94
push 0xa76f34
lea ecx, [esp + 0x10]
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x4f7b94
mov eax, dword [esi + 0x9c8]
mov ecx, dword [esp + 0xc]
imul eax, dword [esi + 0x738]
mov ecx, dword [ecx - 8]
cdq
sub eax, edx
push ecx
mov ecx, dword [esp + 0x10]
mov edx, eax
mov eax, dword [esi + 0x5a8]
push ecx
mov ecx, dword [edi]
sar edx, 1
sub eax, edx
mov edx, dword [ebx]
sub eax, 3
push ecx
push eax
mov ecx, ebx
call dword [edx + 0x64]
jmp 0x4f7ccc
lea ecx, [esp + 0x48]
call fcn.00911f0c
lea edx, [esp + 0x34]
push 1
push edx
lea ecx, [esp + 0x14]
mov byte [esp + 0x7c0], 0xc
call fcn.0091218e
push eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0x7bc], 0xd
call fcn.00911f3c
lea ecx, [esp + 0x34]
mov byte [esp + 0x7b8], 0xc
call fcn.00911ee2
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x44]
mov eax, dword [eax - 8]
dec eax
push eax
push ecx
lea ecx, [esp + 0x14]
call fcn.00912044
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x7bc], 0xe
call fcn.00911f3c
lea ecx, [esp + 0x44]
mov byte [esp + 0x7b8], 0xc
call fcn.00911ee2
mov eax, dword [esi + 0x9c8]
mov ecx, dword [esp + 0xc]
imul eax, dword [esi + 0x738]
mov ecx, dword [ecx - 8]
cdq
sub eax, edx
push ecx
mov ecx, dword [esp + 0x10]
mov edx, eax
mov eax, dword [esi + 0x5a8]
push ecx
mov ecx, dword [edi]
sar edx, 1
sub eax, edx
mov edx, dword [ebx]
sub eax, 3
push ecx
push eax
mov ecx, ebx
call dword [edx + 0x64]
mov edx, dword [ebx]
lea eax, [esi + 0x2154]
push eax
mov ecx, ebx
call dword [edx + 0x30]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx - 8]
mov ecx, dword [esi + 0x9c8]
mov eax, ecx
mov dword [esp + 0x1c], edx
imul eax, dword [esi + 0x738]
cdq
sub eax, edx
mov edx, eax
mov eax, ecx
imul eax, dword [esp + 0x1c]
sar edx, 1
mov ecx, edx
cdq
sub eax, edx
mov edx, dword [esi + 0x5a8]
sar eax, 1
sub eax, ecx
mov ecx, dword [esp + 0x48]
lea eax, [eax + edx - 3]
mov edx, dword [ecx - 8]
mov dword [esp + 0x1c], edx
push dword [esp + 0x1c]
mov edx, dword [ebx]
push ecx
mov ecx, dword [edi]
push ecx
push eax
mov ecx, ebx
call dword [edx + 0x64]
mov eax, dword [ebx]
lea ecx, [esi + 0x2144]
push ecx
mov ecx, ebx
call dword [eax + 0x30]
mov byte [esp + 0x7b8], 7
lea ecx, [esp + 0x48]
call fcn.00911ee2
mov al, byte [esi + 0x519]
test al, al
je 0x4f7d1a
mov eax, dword [esi + 0x9c8]
mov edx, dword [esp + 0x18]
imul eax, dword [esi + 0x73c]
lea ecx, [esp + edx*4 + 0x490]
cdq
mov ecx, dword [ecx]
sub eax, edx
mov dword [esp + 0x1c], ecx
mov edx, eax
mov ecx, dword [ecx - 8]
mov eax, dword [esi + 0x5ac]
push ecx
mov ecx, dword [esp + 0x20]
sar edx, 1
sub eax, edx
mov edx, dword [ebx]
push ecx
mov ecx, dword [edi]
sub eax, 3
push ecx
push eax
mov ecx, ebx
call dword [edx + 0x64]
mov al, byte [esi + 0x51a]
test al, al
je 0x4f7d69
push 0xa907a4
lea ecx, [esp + 0x10]
call fcn.00911f06
mov eax, dword [esi + 0x9c8]
mov ecx, dword [esp + 0xc]
imul eax, dword [esi + 0x740]
mov ecx, dword [ecx - 8]
cdq
sub eax, edx
push ecx
mov ecx, dword [esp + 0x10]
mov edx, eax
mov eax, dword [esi + 0x5b0]
push ecx
mov ecx, dword [edi]
sar edx, 1
sub eax, edx
mov edx, dword [ebx]
sub eax, 3
push ecx
push eax
mov ecx, ebx
call dword [edx + 0x64]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x10], 0xa7a828
lea eax, [esp + edx*4 + 0x70]
mov eax, dword [esp + edx*4 + 0x70]
mov dword [esp + 0x1c], eax
mov cl, byte [eax]
mov edx, dword [esp + 0x10]
mov byte [esp + 0x17], cl
cmp cl, byte [edx]
jne 0x4f7db1
test cl, cl
je 0x4f7dad
mov cl, byte [eax + 1]
mov byte [esp + 0x17], cl
cmp cl, byte [edx + 1]
jne 0x4f7db1
add eax, 2
add edx, 2
test cl, cl
mov dword [esp + 0x10], edx
jne 0x4f7d81
xor eax, eax
jmp 0x4f7db6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4f7def
fld qword [esi + 0x2ea8]
fdiv qword [esi + 0x2e28]
fld qword [esi + 0x2ea0]
fdiv qword [esi + 0x2e28]
faddp st(1)
fadd qword [esi + 0x2e80]
fadd qword [esi + 0x2e78]
fadd qword [esi + 0x2e70]
fstp qword [esp + 0x24]
jmp 0x4f8022
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], 0xa7a820
mov cl, byte [eax]
mov edx, dword [esp + 0x10]
mov byte [esp + 0x17], cl
cmp cl, byte [edx]
jne 0x4f7e2b
test cl, cl
je 0x4f7e27
mov cl, byte [eax + 1]
mov byte [esp + 0x17], cl
cmp cl, byte [edx + 1]
jne 0x4f7e2b
add eax, 2
add edx, 2
test cl, cl
mov dword [esp + 0x10], edx
jne 0x4f7dfb
xor eax, eax
jmp 0x4f7e30
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4f7e3c
fld qword [esi + 0x2e80]
jmp 0x4f7dda
mov eax, dword [esp + 0x18]
push 0xa7a818
lea ecx, [esp + eax*4 + 0x74]
call fcn.009121e8
cmp eax, 0xffffffff
je 0x4f7e6c
mov ecx, dword [esi + 0x2e70]
mov edx, dword [esi + 0x2e74]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
jmp 0x4f8022
mov eax, dword [esp + 0x18]
push 0xa7a810
lea ecx, [esp + eax*4 + 0x74]
call fcn.009121e8
cmp eax, 0xffffffff
je 0x4f7e9c
mov ecx, dword [esi + 0x2e78]
mov edx, dword [esi + 0x2e7c]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
jmp 0x4f8022
mov eax, dword [esp + 0x18]
push 0xa7a808
lea ecx, [esp + eax*4 + 0x74]
call fcn.009121e8
cmp eax, 0xffffffff
je 0x4f7ecc
mov ecx, dword [esi + 0x2e80]
mov edx, dword [esi + 0x2e84]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
jmp 0x4f8022
mov eax, dword [esp + 0x18]
push 0xa7a7fc
lea ecx, [esp + eax*4 + 0x74]
call fcn.009121e8
cmp eax, 0xffffffff
je 0x4f7ef8
fld qword [esi + 0x2ea8]
fdiv qword [esi + 0x2e28]
fstp qword [esp + 0x24]
jmp 0x4f8022
mov ecx, dword [esp + 0x18]
push 0xa7a7f0
lea ecx, [esp + ecx*4 + 0x74]
call fcn.009121e8
cmp eax, 0xffffffff
je 0x4f7f24
fld qword [esi + 0x2ea0]
fdiv qword [esi + 0x2e28]
fstp qword [esp + 0x24]
jmp 0x4f8022
mov edx, dword [esp + 0x18]
push 0xa7a7e8
lea ecx, [esp + edx*4 + 0x74]
call fcn.009121e8
cmp eax, 0xffffffff
je 0x4f7f50
fld qword [esi + 0x2ec8]
fdiv qword [esi + 0x2e28]
fstp qword [esp + 0x24]
jmp 0x4f8022
mov eax, dword [esp + 0x18]
push 0xa7a7e0
lea ecx, [esp + eax*4 + 0x74]
call fcn.009121e8
cmp eax, 0xffffffff
je 0x4f7f7c
fld qword [esi + 0x2ed8]
fdiv qword [esi + 0x2e28]
fstp qword [esp + 0x24]
jmp 0x4f8022
mov ecx, dword [esp + 0x18]
push 0xa7a7d8
lea ecx, [esp + ecx*4 + 0x74]
call fcn.009121e8
cmp eax, 0xffffffff
je 0x4f7fa5
fld qword [esi + 0x2ef8]
fdiv qword [esi + 0x2e28]
fstp qword [esp + 0x24]
jmp 0x4f8022
mov edx, dword [esp + 0x18]
push 0xa7a7d0
lea ecx, [esp + edx*4 + 0x74]
call fcn.009121e8
cmp eax, 0xffffffff
je 0x4f7fce
fld qword [esi + 0x2ee0]
fdiv qword [esi + 0x2e28]
fstp qword [esp + 0x24]
jmp 0x4f8022
mov eax, dword [esp + 0x18]
push 0xa7a7c4
lea ecx, [esp + eax*4 + 0x74]
call fcn.009121e8
cmp eax, 0xffffffff
je 0x4f7ffb
mov ecx, dword [esi + 0x2e60]
mov edx, dword [esi + 0x2e64]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
jmp 0x4f8022
mov eax, dword [esp + 0x18]
push 0xa77188
lea ecx, [esp + eax*4 + 0x74]
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x4f7fe5
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov al, byte [esi + 0x51b]
test al, al
je 0x4f80e4
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
push ecx
mov ecx, esi
call fcn.008f5ce0
fld dword [esi + 0x9e4]
fcompp
fnstsw ax
test ah, 0x41
je 0x4f80e4
mov edx, dword [0xa8e738]
mov eax, dword [esi + 0x744]
push edx
push eax
push 0x25
lea ecx, [esp + 0x3c]
push 0xa771b0
push ecx
call fcn.00911f42
mov edx, dword [esp + 0x44]
mov eax, dword [0xa8e738]
mov ecx, dword [esp + 0x3c]
add esp, 0x14
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x24]
push eax
push ecx
push edx
mov ecx, esi
call fcn.004126e0
mov eax, dword [esp + 0x1c]
sub esp, 8
lea ecx, [esp + 0x14]
fstp qword [esp]
push eax
push ecx
call fcn.00911f42
mov eax, dword [esi + 0x9c8]
mov ecx, dword [esp + 0x1c]
imul eax, dword [esi + 0x744]
mov ecx, dword [ecx - 8]
add esp, 0x10
cdq
sub eax, edx
push ecx
mov ecx, dword [esp + 0x10]
mov edx, eax
mov eax, dword [esi + 0x5b4]
push ecx
mov ecx, dword [edi]
sar edx, 1
sub eax, edx
mov edx, dword [ebx]
sub eax, 3
push ecx
push eax
mov ecx, ebx
call dword [edx + 0x64]
mov edx, dword [0xa8e750]
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x18]
add edx, eax
mov eax, dword [edi]
push 0xa7a818
sub eax, edx
lea ecx, [esp + ecx*4 + 0x74]
mov dword [edi], eax
call fcn.009121e8
cmp eax, 0xffffffff
je 0x4f8201
mov eax, dword [ebp + 0x14]
mov ecx, dword [esi + 0x8bc]
cmp eax, ecx
mov dword [esp + 0x20], 1
mov dword [esp + 0x10], eax
jge 0x4f8449
mov edx, dword [esp + 0x10]
mov ecx, esi
push edx
call fcn.004150c0
mov ax, word [esi + 0x2bbe]
cmp ax, 0x11
jl 0x4f8449
je 0x4f8162
cmp ax, 0x25
je 0x4f8162
cmp ax, 0x26
je 0x4f8162
cmp ax, 0x27
jne 0x4f81e5
fld qword [esi + 0x2c68]
fmul qword [esi + 0x2c28]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.008f5ce0
fld dword [esi + 0x9e4]
fcompp
fnstsw ax
test ah, 0x41
je 0x4f81e5
mov eax, dword [0xa8e750]
mov ecx, dword [ebp + 0x10]
add eax, ecx
mov ecx, dword [edi]
sub ecx, eax
push 0
mov dword [edi], ecx
mov edx, dword [esi + 0x598]
mov eax, dword [esi + 0x9cc]
push 1
push edx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov ecx, esi
push eax
push ebx
call fcn.00460a00
mov eax, dword [esp + 0x20]
mov ecx, dword [edi]
push eax
push ecx
push ebx
mov ecx, esi
call fcn.004f0870
mov edx, dword [0xa8e750]
mov eax, dword [ebp + 0x10]
mov ecx, dword [edi]
add edx, eax
mov eax, dword [esp + 0x20]
sub ecx, edx
inc eax
mov dword [edi], ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x8bc]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x4f812d
jmp 0x4f8449
mov ecx, dword [esp + 0x18]
push 0xa7a810
lea ecx, [esp + ecx*4 + 0x74]
call fcn.009121e8
cmp eax, 0xffffffff
je 0x4f8338
mov eax, dword [ebp + 0x14]
mov ecx, dword [esi + 0x8bc]
cmp eax, ecx
mov dword [esp + 0x20], 1
mov dword [esp + 0x10], eax
jge 0x4f8449
mov edx, dword [esp + 0x10]
mov ecx, esi
push edx
call fcn.004150c0
mov ax, word [esi + 0x2bbe]
cmp ax, 0x11
jl 0x4f8449
mov edx, dword [esi + 0x964]
movsx ecx, ax
cmp ecx, edx
je 0x4f829b
cmp ecx, dword [esi + 0x968]
je 0x4f829b
cmp ax, 0x17
je 0x4f829b
cmp ax, 0x18
je 0x4f829b
cmp ecx, dword [esi + 0x970]
je 0x4f829b
cmp ax, 0x1e
je 0x4f829b
cmp ax, 0x1f
je 0x4f829b
cmp ax, 0x23
je 0x4f829b
cmp ax, 0x28
jne 0x4f831c
fld qword [esi + 0x2c68]
fmul qword [esi + 0x2c28]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.008f5ce0
fcomp qword [0x9cb978]
fnstsw ax
test ah, 1
jne 0x4f831c
mov eax, dword [0xa8e750]
mov ecx, dword [ebp + 0x10]
add eax, ecx
mov ecx, dword [edi]
sub ecx, eax
push 0
mov dword [edi], ecx
mov edx, dword [esi + 0x598]
mov eax, dword [esi + 0x9cc]
push 1
push edx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov ecx, esi
push eax
push ebx
call fcn.00460a00
mov eax, dword [esp + 0x20]
mov ecx, dword [edi]
push eax
push ecx
push ebx
mov ecx, esi
call fcn.004f0870
mov edx, dword [0xa8e750]
mov eax, dword [ebp + 0x10]
mov ecx, dword [edi]
add edx, eax
mov eax, dword [esp + 0x20]
sub ecx, edx
inc eax
mov dword [edi], ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x8bc]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x4f8239
jmp 0x4f8449
mov ecx, dword [esp + 0x18]
push 0xa7a808
lea ecx, [esp + ecx*4 + 0x74]
call fcn.009121e8
cmp eax, 0xffffffff
je 0x4f8449
mov eax, dword [ebp + 0x14]
mov ecx, dword [esi + 0x8bc]
cmp eax, ecx
mov dword [esp + 0x20], 1
mov dword [esp + 0x10], eax
jge 0x4f8449
mov edx, dword [esp + 0x10]
mov ecx, esi
push edx
call fcn.004150c0
mov ax, word [esi + 0x2bbe]
cmp ax, 0x11
jl 0x4f8449
cmp ax, 0x13
je 0x4f83af
cmp ax, 0x1c
je 0x4f83af
cmp ax, 0x1d
je 0x4f83af
cmp ax, 0x20
je 0x4f83af
cmp ax, 0x24
jne 0x4f8432
fld qword [esi + 0x2c68]
fmul qword [esi + 0x2c28]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.008f5ce0
fld dword [esi + 0x9e4]
fcompp
fnstsw ax
test ah, 0x41
je 0x4f8432
mov eax, dword [0xa8e750]
mov ecx, dword [ebp + 0x10]
add eax, ecx
mov ecx, dword [edi]
sub ecx, eax
push 0
mov dword [edi], ecx
mov edx, dword [esi + 0x598]
mov eax, dword [esi + 0x9cc]
push 1
push edx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov ecx, esi
push eax
push ebx
call fcn.00460a00
mov eax, dword [esp + 0x20]
mov ecx, dword [edi]
push eax
push ecx
push ebx
mov ecx, esi
call fcn.004f0870
mov edx, dword [0xa8e750]
mov eax, dword [ebp + 0x10]
mov ecx, dword [edi]
add edx, eax
mov eax, dword [esp + 0x20]
sub ecx, edx
inc eax
mov dword [edi], ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x8bc]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x4f8370
mov eax, dword [esp + 0x18]
inc eax
cmp eax, 0x64
mov dword [esp + 0x18], eax
jl 0x4f7693
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
push ecx
push edx
mov ecx, esi
call fcn.008f5ce0
fld dword [esi + 0x9e4]
fcompp
fnstsw ax
test ah, 0x41
je 0x4f8792
mov eax, dword [0xa8e750]
mov ecx, dword [ebp + 0x10]
add eax, ecx
mov ecx, dword [edi]
sub ecx, eax
push 0
mov dword [edi], ecx
mov edx, dword [esi + 0x598]
mov eax, dword [esi + 0x9cc]
push 1
push edx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov ecx, esi
push eax
push ebx
call fcn.00460a00
mov eax, dword [0xa8e738]
lea ecx, [esp + 0x30]
push eax
push 0xa
push 0x25
push 0xa771b0
push ecx
call fcn.00911f42
mov edx, dword [0xa8e73c]
lea eax, [esp + 0x4c]
push edx
push 0xa
push 0x25
push str._c_d.4f
push eax
call fcn.00911f42
mov al, byte [esi + 0x517]
add esp, 0x28
test al, al
je 0x4f857f
mov ecx, dword [esi + 0x9a4]
xor eax, eax
mov edx, ecx
lea edi, [esp + 0x200]
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
push 0x28
and ecx, 3
rep stosb byte es:[edi], al
lea eax, [esi + 0x2bc8]
lea ecx, [esp + 0x204]
push eax
push ecx
nop
call fcn.00b1592b
push 0xa77188
lea edx, [esp + 0x1c]
push 0xa76fa0
push edx
call fcn.00911f42
mov eax, dword [ebp + 0xc]
add esp, 0x18
mov ecx, dword [eax]
mov eax, dword [esi + 0x9c8]
imul eax, dword [esi + 0x734]
cdq
sub eax, edx
mov edx, eax
mov eax, dword [esi + 0x5a4]
sar edx, 1
sub eax, edx
mov edx, dword [esp + 0xc]
sub eax, 3
mov edi, dword [edx - 8]
mov dword [esp + 0x34], edi
push dword [esp + 0x34]
mov edi, dword [ebx]
push edx
push ecx
push eax
mov ecx, ebx
call dword [edi + 0x64]
mov edi, dword [ebp + 0xc]
mov al, byte [esi + 0x51b]
test al, al
je 0x4f85f6
mov eax, dword [esi + 0x744]
push 0
push eax
push 0x25
lea ecx, [esp + 0x3c]
push 0xa771b0
push ecx
call fcn.00911f42
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x44]
push edx
push eax
lea edx, [esp + 0x28]
push ecx
push edx
call fcn.00911f42
mov eax, dword [esi + 0x9c8]
add esp, 0x24
imul eax, dword [esi + 0x744]
cdq
sub eax, edx
mov edx, dword [esp + 0xc]
mov ecx, eax
mov eax, dword [esi + 0x5b4]
sar ecx, 1
sub eax, ecx
mov ecx, dword [edx - 8]
mov edx, dword [ebx]
push ecx
mov ecx, dword [esp + 0x10]
sub eax, 3
push ecx
mov ecx, dword [edi]
push ecx
push eax
mov ecx, ebx
call dword [edx + 0x64]
mov eax, dword [0xa8e750]
mov edx, dword [ebp + 0x10]
mov ecx, dword [edi]
add eax, edx
sub ecx, eax
push 0
mov dword [edi], ecx
mov eax, ecx
mov ecx, dword [0xa8e750]
push 1
sub eax, ecx
mov ecx, eax
sub ecx, edx
mov dword [edi], ecx
mov edx, dword [esi + 0x598]
mov eax, dword [esi + 0x9cc]
push edx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov ecx, esi
push eax
push ebx
call fcn.00460a00
mov eax, dword [0xa8e738]
lea ecx, [esp + 0x30]
push eax
push 0xa
push 0x25
push 0xa771b0
push ecx
call fcn.00911f42
mov edx, dword [0xa8e73c]
lea eax, [esp + 0x4c]
push edx
push 0xa
push 0x25
push str._c_d.4f
push eax
call fcn.00911f42
mov al, byte [esi + 0x517]
add esp, 0x28
test al, al
je 0x4f8706
mov ecx, dword [esi + 0x9a4]
xor eax, eax
mov edx, ecx
lea edi, [esp + 0x200]
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
push 0x28
and ecx, 3
rep stosb byte es:[edi], al
lea eax, [esi + 0x2bc8]
lea ecx, [esp + 0x204]
push eax
push ecx
nop
call fcn.00b15934
push 0xa7a884
lea edx, [esp + 0x1c]
push 0xa76fa0
push edx
call fcn.00911f42
mov eax, dword [ebp + 0xc]
add esp, 0x18
mov ecx, dword [eax]
mov eax, dword [esi + 0x9c8]
imul eax, dword [esi + 0x734]
cdq
sub eax, edx
mov edx, eax
mov eax, dword [esi + 0x5a4]
sar edx, 1
sub eax, edx
mov edx, dword [esp + 0xc]
sub eax, 3
mov edi, dword [edx - 8]
mov dword [esp + 0x34], edi
push dword [esp + 0x34]
mov edi, dword [ebx]
push edx
push ecx
push eax
mov ecx, ebx
call dword [edi + 0x64]
mov edi, dword [ebp + 0xc]
mov al, byte [esi + 0x51b]
test al, al
je 0x4f8782
mov eax, dword [esi + 0x744]
push 0
push eax
push 0x25
lea ecx, [esp + 0x3c]
push 0xa771b0
push ecx
call fcn.00911f42
fld qword [esp + 0x60]
fdiv qword [esp + 0x78]
mov edx, dword [esp + 0x44]
add esp, 0xc
lea eax, [esp + 0x14]
fstp qword [esp]
push edx
push eax
call fcn.00911f42
mov eax, dword [esi + 0x9c8]
mov ecx, dword [edi]
imul eax, dword [esi + 0x744]
mov esi, dword [esi + 0x5b4]
add esp, 0x10
cdq
sub eax, edx
sar eax, 1
sub esi, eax
mov eax, dword [esp + 0xc]
sub esi, 3
mov edx, dword [eax - 8]
mov dword [esp + 0x34], edx
push dword [esp + 0x34]
mov edx, dword [ebx]
push eax
push ecx
push esi
mov ecx, ebx
call dword [edx + 0x64]
mov eax, dword [0xa8e750]
mov ecx, dword [ebp + 0x10]
add eax, ecx
mov ecx, dword [edi]
sub ecx, eax
mov dword [edi], ecx
lea ecx, [esp + 0x40]
mov byte [esp + 0x7b8], 6
call fcn.00911ee2
lea ecx, [esp + 0x38]
mov byte [esp + 0x7b8], 5
call fcn.00911ee2
lea ecx, [esp + 0x30]
mov byte [esp + 0x7b8], 4
call fcn.00911ee2
lea ecx, [esp + 0xc]
mov byte [esp + 0x7b8], 3
call fcn.00911ee2
push fcn.00911ee2
push 0x64
lea edx, [esp + 0x498]
push 4
push edx
mov byte [esp + 0x7c8], 2
call fcn.009128f2
push fcn.00911ee2
push 0x64
lea eax, [esp + 0x628]
push 4
push eax
mov byte [esp + 0x7c8], 1
call fcn.009128f2
push fcn.00911ee2
push 0x64
lea ecx, [esp + 0x78]
push 4
push ecx
mov byte [esp + 0x7c8], 0
call fcn.009128f2
push fcn.00911ee2
push 0x64
lea edx, [esp + 0x308]
push 4
push edx
mov dword [esp + 0x7c8], 0xffffffff
call fcn.009128f2
mov ecx, dword [esp + 0x7b0]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x10