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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x64
push 0
push 0
dec ecx
jne 0x914cbc
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
lea eax, [ebp - 8]
call fcn.004059c8
lea eax, [ebp - 0x2c0]
mov edx, dword [0x484a90]
call fcn.004059e8
xor eax, eax
push ebp
push 0x9161bc
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x9160d9
push dword fs:[edx]
mov dword fs:[edx], esp
xor eax, eax
mov dword [ebp - 0xc], eax
mov byte [ebp - 0x43], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0xbcc], 0
mov byte [ebp - 0x41], 0
mov byte [ebp - 0x2d], 0
lea edx, [ebp - 0x2c4]
mov eax, dword [ebp - 8]
call fcn.008b0e84
mov edx, dword [ebp - 0x2c4]
lea eax, [ebp - 8]
call fcn.00405410
mov eax, dword [ebp - 8]
call fcn.008b4ad4
test al, al
jne 0x914d51
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x9160e3
xor edx, edx
push ebp
push 0x9160c8
push dword fs:[edx]
mov dword fs:[edx], esp
mov dword [ebp - 0x34], 0xffffffff
lea eax, [ebp - 0x3c]
call fcn.00404c7c
mov byte [ebp - 0x49], 0
mov dl, 1
mov eax, dword [0x41e52c]
call fcn.00403dfc
mov dword [ebp - 0x2c], eax
mov dl, 1
mov eax, dword [0x41e52c]
call fcn.00403dfc
mov dword [ebp - 0x10], eax
mov dl, 1
mov eax, dword [0x41e52c]
call fcn.00403dfc
mov dword [ebp - 0x14], eax
mov dl, 1
mov eax, dword [0x47f6cc]
call fcn.00403dfc
mov dword [ebp - 0x24], eax
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7c4]
cmp dword [eax + 0x6c], 2
je 0x914dca
mov dword [ebp - 0x40], 0x30
jmp 0x914dd1
mov dword [ebp - 0x40], 0x20
mov edx, dword [0x98a548]
cmp byte [eax + 0x70], 0
je 0x914de8
mov eax, dword [ebp - 4]
call fcn.00909638
or dword [ebp - 0x40], eax
mov dword [ebp - 0x48], 0xffffffff
xor eax, eax
push ebp
push 0x914ea3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.008f8634
test al, al
jne 0x914e19
mov eax, dword [ebp - 4]
call fcn.008f8654
test al, al
je 0x914e99
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
cmp byte [eax + 0x215], 0
je 0x914e99
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.006519b0
call fcn.0049ea54
test eax, eax
jle 0x914e99
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.00651904
mov ebx, eax
test ebx, ebx
je 0x914e99
mov eax, ebx
call fcn.0049e8a0
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.004a1f90
add ebx, eax
dec ebx
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.006519b0
call fcn.0049ea54
mov edx, eax
dec edx
pop eax
call fcn.00437efc
mov edx, eax
xor eax, eax
call fcn.00437fc0
mov dword [ebp - 0x48], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x914ead
lea eax, [ebp - 0x2c8]
mov ecx, 0x9161d4
mov edx, dword [ebp - 8]
call fcn.0040568c
mov eax, dword [ebp - 0x2c8]
lea ecx, [ebp - 0x2c0]
mov edx, dword [ebp - 0x40]
call fcn.00485570
test eax, eax
jne 0x9151a8
mov eax, dword [ebp - 0x2ac]
mov edx, 0x9161e0
call fcn.00405738
je 0x91518a
mov eax, dword [ebp - 0x2ac]
mov edx, 0x9161e8
call fcn.00405738
je 0x91518a
test byte [ebp - 0x2b0], 0x10
je 0x91503f
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7c4]
cmp dword [eax + 0x6c], 2
je 0x91518a
mov eax, dword [ebp - 4]
cmp byte [eax + 0xac4], 0
jne 0x91518a
mov dl, 1
mov eax, dword [0x8d0b0c]
call fcn.00403dfc
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [eax + 0x5c], edx
lea edx, [ebp - 0x2cc]
mov eax, dword [ebp - 8]
call fcn.008b0e84
mov edx, dword [ebp - 0x2cc]
mov eax, dword [ebp - 0x1c]
add eax, 8
call fcn.004053ec
mov eax, dword [ebp - 0x1c]
add eax, 4
call fcn.004053b0
mov eax, dword [ebp - 0x1c]
add eax, 0xc
mov edx, dword [ebp - 0x2ac]
call fcn.004053ec
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x10], 1
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x11], 0
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x2c0]
mov dword [eax + 0x28], edx
lea eax, [ebp - 0x28c]
call fcn.008aee98
mov eax, dword [ebp - 0x1c]
fstp qword [eax + 0x20]
wait
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [eax + 0x2c], edx
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [eax + 0x38], edx
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [eax + 0x30], edx
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [eax + 0x34], edx
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [eax + 0x40], edx
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x3c], 0
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x3d], 0
mov eax, dword [ebp - 0x1c]
add eax, 0x44
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0xc]
call fcn.004053ec
mov eax, dword [ebp - 0x1c]
add eax, 0x48
call fcn.004053b0
mov eax, dword [ebp - 0x1c]
add eax, 0x4c
call fcn.004053b0
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x50], 0
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
call fcn.00420f04
jmp 0x91518a
lea edx, [ebp - 0x2d4]
mov eax, dword [ebp - 0x2ac]
call fcn.00485148
mov edx, dword [ebp - 0x2d4]
lea eax, [ebp - 0x2d0]
call fcn.00404f0c
mov eax, dword [ebp - 0x2d0]
lea edx, [ebp - 0x20]
call fcn.0040adfc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe8c]
mov edx, dword [ebp - 0x20]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jl 0x91518a
mov dl, 1
mov eax, dword [0x8d0b0c]
call fcn.00403dfc
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [eax + 0x5c], edx
lea edx, [ebp - 0x2d8]
mov eax, dword [ebp - 8]
call fcn.008b0e84
mov edx, dword [ebp - 0x2d8]
mov eax, dword [ebp - 0x1c]
add eax, 8
call fcn.004053ec
mov eax, dword [ebp - 0x1c]
add eax, 4
call fcn.004053b0
mov eax, dword [ebp - 0x1c]
add eax, 0xc
mov edx, dword [ebp - 0x2ac]
call fcn.004053ec
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x10], 0
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x11], 0
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x2b8]
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 0x2b4]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x2c0]
mov dword [eax + 0x28], edx
lea eax, [ebp - 0x28c]
call fcn.008aee98
mov eax, dword [ebp - 0x1c]
fstp qword [eax + 0x20]
wait
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [eax + 0x2c], edx
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [eax + 0x38], edx
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [eax + 0x30], edx
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [eax + 0x34], edx
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [eax + 0x40], edx
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x3c], 0
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x3d], 0
mov eax, dword [ebp - 0x1c]
add eax, 0x44
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0xc]
call fcn.004053ec
mov eax, dword [ebp - 0x1c]
add eax, 0x48
call fcn.004053b0
mov eax, dword [ebp - 0x1c]
add eax, 0x4c
call fcn.004053b0
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x50], 0
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
call fcn.00420f04
lea eax, [ebp - 0x2c0]
call fcn.004855bc
test eax, eax
je 0x914edc
lea eax, [ebp - 0x2c0]
call fcn.004855e0
mov ebx, 0x908efc
mov edx, ebx
mov eax, dword [ebp - 0x10]
call fcn.004213a0
mov edx, ebx
mov eax, dword [ebp - 0x14]
call fcn.004213a0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x91520f
inc eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x18], 0
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
call fcn.004210b0
mov dword [ebp - 0x1c], eax
lea edx, [ebp - 0x2dc]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0xc]
call fcn.008bb334
mov edx, dword [ebp - 0x2dc]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov ebx, dword [eax]
call dword [ebx + 0x3c]
inc dword [ebp - 0x18]
dec dword [ebp - 0x50]
jne 0x9151d7
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x91525d
inc eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x18], 0
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
call fcn.004210b0
mov dword [ebp - 0x1c], eax
lea edx, [ebp - 0x2e0]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0xc]
call fcn.008bb334
mov edx, dword [ebp - 0x2e0]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov ebx, dword [eax]
call dword [ebx + 0x3c]
inc dword [ebp - 0x18]
dec dword [ebp - 0x50]
jne 0x915225
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe84]
mov edx, dword [eax]
call dword [edx + 0x44]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
cmp byte [eax + 0x215], 0
sete byte [ebp - 0x42]
xor edx, edx
push ebp
push 0x915ed2
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
call fcn.008f8604
test al, al
jne 0x9152ab
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.006518c4
mov ebx, eax
jmp 0x9152c1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
call fcn.006518c4
mov ebx, eax
test ebx, ebx
je 0x9152d5
mov edx, 3
mov eax, ebx
call fcn.0049e54c
test al, al
jne 0x9152d9
xor eax, eax
jmp 0x9152db
mov al, 1
mov byte [ebp - 0x49], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.006519b0
call fcn.0049eb68
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
call fcn.006519b0
call fcn.0049eb68
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
mov dword [eax + 0xc], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
mov dword [eax + 0xc], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.006519b0
call fcn.0049ea54
dec eax
cmp eax, 0
jl 0x9154ed
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.006519b0
mov edx, dword [ebp - 0x18]
call fcn.00651470
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x9154a1
lea edx, [ebp - 0x2e4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0xc]
call fcn.008bb334
mov edx, dword [ebp - 0x2e4]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov ebx, eax
inc ebx
jne 0x915462
mov byte [ebp - 0x41], 1
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x10], 0
je 0x9153d1
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xbc8]
dec edx
xor eax, eax
call fcn.00437fc0
mov edx, dword [ebp - 4]
mov dword [edx + 0xbc8], eax
mov eax, dword [ebp - 4]
mov byte [eax + 0xbcc], 1
jmp 0x91541d
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xbd0]
dec edx
xor eax, eax
call fcn.00437fc0
mov edx, dword [ebp - 4]
mov dword [edx + 0xbd0], eax
push 0
push 0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xbdc]
mov eax, dword [eax + 0xbd8]
mov ecx, dword [ebp - 0x1c]
sub eax, dword [ecx + 0x18]
sbb edx, dword [ecx + 0x1c]
push edx
push eax
call fcn.00437fc8
mov ecx, dword [ebp - 4]
mov dword [ecx + 0xbd8], eax
mov dword [ecx + 0xbdc], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.006519b0
mov edx, dword [ebp - 0x18]
call fcn.00651470
call fcn.0049e334
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
call fcn.006519b0
mov edx, dword [ebp - 0x18]
call fcn.00651470
call fcn.0049e334
mov byte [ebp - 0x2d], 1
inc dword [ebp - 0xc]
jmp 0x9154e0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.006519b0
mov edx, dword [ebp - 0x18]
call fcn.00651470
push eax
lea edx, [ebp - 0x2e8]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0xc]
call fcn.008bb334
mov edx, dword [ebp - 0x2e8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe84]
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x3c]
jmp 0x9154e0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.006519b0
mov edx, dword [ebp - 0x18]
call fcn.00651470
call fcn.0049e334
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
call fcn.006519b0
mov edx, dword [ebp - 0x18]
call fcn.00651470
call fcn.0049e334
inc dword [ebp - 0xc]
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffff
jne 0x915350
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x915a9c
inc eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x18], 0
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x915a90
lea edx, [ebp - 0x2ec]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0xc]
call fcn.008bb334
mov edx, dword [ebp - 0x2ec]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe84]
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x915847
mov eax, dword [ebp - 4]
cmp byte [eax + 0xac4], 0
jne 0x915a88
mov byte [ebp - 0x41], 1
mov dl, 1
mov eax, dword [0x8d0b0c]
call fcn.00403dfc
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x5c], eax
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [eax + 0x5c], edx
mov eax, dword [ebp - 0x28]
add eax, 8
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 8]
call fcn.004053ec
mov eax, dword [ebp - 0x28]
add eax, 4
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 4]
call fcn.004053ec
mov eax, dword [ebp - 0x28]
add eax, 0xc
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0xc]
call fcn.004053ec
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + 0x10]
mov edx, dword [ebp - 0x28]
mov byte [edx + 0x10], al
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + 0x11]
mov edx, dword [ebp - 0x28]
mov byte [edx + 0x11], al
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x18]
mov dword [eax + 0x18], ecx
mov ecx, dword [edx + 0x1c]
mov dword [eax + 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x28], eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x20]
mov dword [eax + 0x20], ecx
mov ecx, dword [edx + 0x24]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x2c]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x38], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x34]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x34], eax
mov eax, dword [ebp - 0x28]
mov byte [eax + 0x3c], 0
mov eax, dword [ebp - 0x28]
mov byte [eax + 0x3d], 0
mov dl, 1
mov eax, dword [0x62a81c]
call fcn.00632eb8
mov ebx, eax
mov eax, dword [ebp - 0x28]
mov dword [eax + 0x40], ebx
mov eax, ebx
xor edx, edx
call fcn.00638894
mov eax, dword [ebp - 4]
inc dword [eax + 0xc24]
mov eax, dword [ebp - 0x28]
cmp byte [eax + 0x10], 0
je 0x915698
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7c4]
cmp dword [eax + 0x6c], 1
jne 0x915698
mov eax, dword [ebp - 0x28]
mov edx, dword [eax + 0x40]
mov eax, dword [ebp - 4]
call fcn.009085fc
mov eax, dword [ebp - 0x28]
mov byte [eax + 0x3c], 1
mov eax, dword [ebp - 0x28]
cmp byte [eax + 0x10], 0
je 0x9156e8
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x28]
mov edx, dword [eax + 8]
lea eax, [ebp - 0x2f4]
call fcn.0040568c
mov eax, dword [ebp - 0x2f4]
lea edx, [ebp - 0x2f0]
call fcn.008b0e84
mov edx, dword [ebp - 0x2f0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
call fcn.00649a04
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x54], eax
jmp 0x915775
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x28]
mov edx, dword [eax + 8]
lea eax, [ebp - 0x300]
call fcn.0040568c
mov eax, dword [ebp - 0x300]
lea edx, [ebp - 0x2fc]
call fcn.00485148
mov edx, dword [ebp - 0x2fc]
lea eax, [ebp - 0x2f8]
call fcn.00404f0c
mov eax, dword [ebp - 0x2f8]
lea edx, [ebp - 0x38]
call fcn.0040adfc
cmp dword [ebp - 0x34], 0
jl 0x91574d
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x3c]
call fcn.00405088
jne 0x91574d
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x54], edx
jmp 0x915775
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
mov edx, dword [ebp - 0x38]
call fcn.006498e0
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
call fcn.00404d14
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x54], edx
mov eax, dword [ebp - 0x28]
add eax, 0x44
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x44]
call fcn.004053ec
mov eax, dword [ebp - 0x28]
add eax, 0x48
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x48]
call fcn.004053ec
mov eax, dword [ebp - 0x28]
add eax, 0x4c
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x4c]
call fcn.004053ec
mov eax, dword [ebp - 0x28]
mov byte [eax + 0x50], 0
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x10], 0
je 0x9157de
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xbc8]
inc edx
xor eax, eax
call fcn.00437fc0
mov edx, dword [ebp - 4]
mov dword [edx + 0xbc8], eax
mov eax, dword [ebp - 4]
mov byte [eax + 0xbcc], 1
jmp 0x91582a
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xbd0]
inc edx
xor eax, eax
call fcn.00437fc0
mov edx, dword [ebp - 4]
mov dword [edx + 0xbd0], eax
push 0
push 0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xbdc]
mov eax, dword [eax + 0xbd8]
mov ecx, dword [ebp - 0x1c]
add eax, dword [ecx + 0x18]
adc edx, dword [ecx + 0x1c]
push edx
push eax
call fcn.00437fc8
mov ecx, dword [ebp - 4]
mov dword [ecx + 0xbd8], eax
mov dword [ecx + 0xbdc], edx
mov eax, dword [ebp - 4]
mov byte [eax + 0xdea], 1
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
call fcn.00420f04
inc dword [ebp - 0xc]
jmp 0x915a88
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe84]
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov ebx, eax
cmp dword [ebx + 0xc], 0
je 0x915a88
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x3c], 0
jne 0x915875
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0x28]
cmp edx, dword [ecx + 0x1c]
jne 0x9158a4
cmp eax, dword [ecx + 0x18]
jne 0x9158a4
mov eax, dword [ebp - 0x28]
mov edx, dword [eax + 0x28]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x28]
call fcn.008adc70
test al, al
jne 0x915a62
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0x28]
cmp edx, dword [ecx + 0x1c]
jne 0x9158b8
cmp eax, dword [ecx + 0x18]
je 0x9158f5
push 0
push 0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xbdc]
mov eax, dword [eax + 0xbd8]
mov ecx, dword [ebp - 0x28]
sub eax, dword [ecx + 0x18]
sbb edx, dword [ecx + 0x1c]
mov ecx, dword [ebp - 0x1c]
add eax, dword [ecx + 0x18]
adc edx, dword [ecx + 0x1c]
push edx
push eax
call fcn.00437fc8
mov ecx, dword [ebp - 4]
mov dword [ecx + 0xbd8], eax
mov dword [ecx + 0xbdc], edx
xor eax, eax
push ebp
push 0x915a56
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x5c], eax
mov eax, dword [ebp - 0x28]
add eax, 8
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 8]
call fcn.004053ec
mov eax, dword [ebp - 0x28]
add eax, 4
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 4]
call fcn.004053ec
mov eax, dword [ebp - 0x28]
add eax, 0xc
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0xc]
call fcn.004053ec
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + 0x10]
mov edx, dword [ebp - 0x28]
mov byte [edx + 0x10], al
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x18]
mov dword [eax + 0x18], ecx
mov ecx, dword [edx + 0x1c]
mov dword [eax + 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x28], eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x20]
mov dword [eax + 0x20], ecx
mov ecx, dword [edx + 0x24]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x2c]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x38], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x34]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x34], eax
xor eax, eax
push ebp
push 0x9159fa
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x40]
call fcn.00633d90
test al, al
jne 0x9159f0
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7c4]
fild dword [eax + 0x2f0]
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x40]
call fcn.006382d4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x915a04
mov eax, dword [ebp - 0x28]
mov byte [eax + 0x3c], 0
mov eax, dword [ebp - 0x28]
mov byte [eax + 0x3d], 0
mov eax, dword [ebp - 0x28]
add eax, 0x44
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x44]
call fcn.004053ec
mov eax, dword [ebp - 0x28]
add eax, 0x48
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x48]
call fcn.004053ec
mov eax, dword [ebp - 0x28]
add eax, 0x4c
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x4c]
call fcn.004053ec
mov eax, dword [ebp - 0x28]
mov byte [eax + 0x50], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x915a88
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 0x28]
cmp eax, dword [edx + 0x28]
je 0x915a88
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x28], eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x20]
mov dword [eax + 0x20], ecx
mov ecx, dword [edx + 0x24]
mov dword [eax + 0x24], ecx
lea eax, [ebp - 0x1c]
call fcn.004120b8
inc dword [ebp - 0x18]
dec dword [ebp - 0x50]
jne 0x915509
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe84]
mov edx, dword [eax]
call dword [edx + 0x44]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x44]
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
cmp byte [edx + 0xdea], 0
je 0x915cc9
test eax, eax
jle 0x915cc9
cmp eax, 0x32
jle 0x915ae9
mov byte [ebp - 0x43], 1
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
call fcn.0091479c
jmp 0x915cc9
dec eax
test eax, eax
jl 0x915cc9
inc eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x18], 0
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
call fcn.004210b0
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.006519b0
call fcn.00651438
mov ebx, eax
cmp byte [ebp - 0x42], 0
je 0x915b49
lea eax, [ebp - 0x304]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xb98]
call fcn.00405594
mov edx, dword [ebp - 0x304]
mov eax, ebx
call fcn.006512d0
jmp 0x915b74
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 4]
xor edx, edx
call fcn.00405738
jne 0x915b67
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0xc]
mov eax, ebx
call fcn.006512d0
jmp 0x915b74
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 4]
mov eax, ebx
call fcn.006512d0
mov edx, dword [ebp - 0x1c]
mov eax, ebx
call fcn.0049e4ec
cmp byte [ebp - 0x42], 0
jne 0x915c69
mov eax, dword [ebx + 0x30]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebx + 0x30]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x10], 0
je 0x915bb1
mov eax, dword [ebx + 0x30]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x915c20
mov eax, dword [ebp - 0x1c]
fild qword [eax + 0x18]
fdiv dword [0x9161f0]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00437db4
mov dword [ebp - 0x310], eax
fild dword [ebp - 0x310]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x30c]
push eax
xor ecx, ecx
mov edx, 0xa
mov al, 3
call fcn.0040dbac
lea eax, [ebp - 0x30c]
mov edx, 0x9161fc
call fcn.00404f4c
mov edx, dword [ebp - 0x30c]
lea eax, [ebp - 0x308]
call fcn.00405594
mov edx, dword [ebp - 0x308]
mov eax, dword [ebx + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x1c]
push dword [eax + 0x24]
push dword [eax + 0x20]
lea edx, [ebp - 0x318]
mov eax, dword [0x98a604]
mov eax, dword [eax]
call fcn.0040f0ec
mov edx, dword [ebp - 0x318]
lea eax, [ebp - 0x314]
call fcn.00405594
mov edx, dword [ebp - 0x314]
mov eax, dword [ebx + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x54]
xor edx, edx
mov eax, ebx
call fcn.0049e624
mov eax, ebx
call fcn.0049e420
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
call fcn.006519b0
call fcn.00651438
mov ebx, eax
mov edx, dword [ebp - 0x1c]
mov eax, ebx
call fcn.0049e4ec
lea eax, [ebp - 0x31c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xb94]
call fcn.00405594
mov edx, dword [ebp - 0x31c]
mov eax, ebx
call fcn.006512d0
mov eax, ebx
call fcn.0049e420
inc dword [ebp - 0x18]
dec dword [ebp - 0x50]
jne 0x915afd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.006519b0
call fcn.0049ea54
mov edx, dword [ebp - 4]
xor ecx, ecx
mov dword [edx + 0xbe0], ecx
dec eax
test eax, eax
jl 0x915d6a
inc eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.006519b0
mov edx, dword [ebp - 0x18]
call fcn.00651470
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.006519b0
mov edx, dword [ebp - 0x18]
call fcn.00651470
push eax
lea edx, [ebp - 0x320]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0xc]
call fcn.008bb334
mov edx, dword [ebp - 0x320]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe84]
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x3c]
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x11], 0
je 0x915d62
mov eax, dword [ebp - 4]
inc dword [eax + 0xbe0]
inc dword [ebp - 0x18]
dec dword [ebp - 0x50]
jne 0x915cf7
mov eax, dword [ebp - 4]
cmp byte [eax + 0xdea], 0
je 0x915d8f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x318]
cmp byte [eax + 0x57], 0
je 0x915d8f
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.0090a858
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x915edc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.006519b0
call fcn.0049ed44
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
call fcn.006519b0
call fcn.0049ed44
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
xor edx, edx
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
xor edx, edx
mov dword [eax + 0xc], edx
cmp byte [ebp - 0x2d], 0
je 0x915e16
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
mov dl, 3
call fcn.004a24d8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
mov dl, 1
call fcn.004a24d8
cmp dword [ebp - 0xc], 0
jle 0x915ed1
mov eax, dword [ebp - 4]
call fcn.008f8604
test al, al
jne 0x915e7b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.006518c4
mov ebx, eax
push 2
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x2e4]
mov ecx, ebx
mov eax, dword [ebp - 4]
call fcn.0093d4ac
cmp byte [ebp - 0x49], 0
je 0x915ed1
test ebx, ebx
je 0x915ed1
mov edx, 3
mov eax, ebx
call fcn.0049e54c
test al, al
jne 0x915ed1
mov cl, 1
mov edx, 3
mov eax, ebx
call fcn.0049e5b4
jmp 0x915ed1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
call fcn.006518c4
mov ebx, eax
push 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov edx, dword [eax + 0x2f4]
mov ecx, ebx
call fcn.008cd3b4
cmp byte [ebp - 0x49], 0
je 0x915ed1
test ebx, ebx
je 0x915ed1
mov edx, 3
mov eax, ebx
call fcn.0049e54c
test al, al
jne 0x915ed1
mov cl, 1
mov edx, 3
mov eax, ebx
call fcn.0049e5b4
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x9161c6
lea eax, [ebp - 0x320]
call fcn.00404c7c
lea eax, [ebp - 0x31c]
call fcn.004053b0
lea eax, [ebp - 0x318]
call fcn.00404c7c
lea eax, [ebp - 0x314]
call fcn.004053b0
lea eax, [ebp - 0x30c]
call fcn.00404c7c
lea eax, [ebp - 0x308]
mov edx, 4
call fcn.004053c8
lea eax, [ebp - 0x2f8]
call fcn.00404c7c
lea eax, [ebp - 0x2f4]
mov edx, 2
call fcn.004053c8
lea eax, [ebp - 0x2ec]
mov edx, 5
call fcn.00404ca0
lea eax, [ebp - 0x2d8]
mov edx, 2
call fcn.004053c8
lea eax, [ebp - 0x2d0]
call fcn.00404c7c
lea eax, [ebp - 0x2cc]
mov edx, 3
call fcn.004053c8
lea eax, [ebp - 0x2c0]
mov edx, dword [0x484a90]
call fcn.00405ab8
lea eax, [ebp - 0x3c]
mov edx, 2
call fcn.00404ca0
lea eax, [ebp - 0x20]
call fcn.00404c7c
lea eax, [ebp - 8]
call fcn.004053b0
ret