Function at 0x628828
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x16
push 0
push 0
dec ecx
jne 0x628830
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.00405130
xor eax, eax
push ebp
push 0x629a13
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp dword [eax + 0x320], 0
jne 0x6299da
mov eax, dword [ebp - 4]
mov dword [eax + 0x320], 0xffffffff
mov eax, dword [ebp - 4]
add eax, 0x274
call fcn.00404c80
cmp dword [ebp - 8], 0
jne 0x628bdb
mov dl, 1
mov eax, dword [0x41c188]
call fcn.00403ec0
mov esi, eax
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x32c]
call fcn.00404d18
mov edx, dword [ebp - 0xc]
mov eax, 0x629a2c
call fcn.00405284
test eax, eax
jle 0x6289d6
jmp 0x6289c7
mov edx, dword [ebp - 0xc]
mov eax, 0x629a2c
call fcn.00405284
test eax, eax
jle 0x628918
lea eax, [ebp - 0x20]
push eax
mov edx, dword [ebp - 0xc]
mov eax, 0x629a2c
call fcn.00405284
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.004051a0
lea eax, [ebp - 0xc]
push eax
mov edx, dword [ebp - 0xc]
mov eax, 0x629a2c
call fcn.00405284
mov edx, eax
inc edx
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0xc]
call fcn.004051a0
jmp 0x62892b
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0xc]
call fcn.00404d18
lea eax, [ebp - 0xc]
call fcn.00404c80
xor edx, edx
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x20]
call fcn.0040a15c
test al, al
je 0x62894a
mov edx, dword [ebp - 0x20]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x68]
lea edx, [ebp - 0x44]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov edx, dword [ebp - 0x44]
mov eax, 0x629a38
call fcn.00405284
mov edi, eax
test edi, edi
jle 0x62898f
lea eax, [ebp - 0x48]
push eax
lea edx, [ebp - 0x4c]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov eax, dword [ebp - 0x4c]
mov ecx, edi
dec ecx
mov edx, 1
call fcn.004051a0
mov edx, dword [ebp - 0x48]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x274], 0
je 0x6289ad
mov eax, dword [ebp - 4]
add eax, 0x274
mov edx, 0x629a44
call fcn.00404f48
lea edx, [ebp - 0x50]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 4]
add eax, 0x274
call fcn.00404f48
cmp dword [ebp - 0xc], 0
jne 0x6288c3
jmp 0x628bd0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x32c]
mov eax, 0x629a50
call fcn.00405284
dec eax
jne 0x628b5c
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
mov ecx, 0x7fffffff
mov edx, 4
call fcn.004051a0
lea eax, [ebp - 0x24]
push eax
mov edx, dword [ebp - 0xc]
mov eax, 0x629a5c
call fcn.00405284
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.004051a0
lea eax, [ebp - 0x20]
push eax
mov edx, dword [ebp - 0xc]
mov eax, 0x629a5c
call fcn.00405284
mov edx, eax
inc edx
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0xc]
call fcn.004051a0
xor ecx, ecx
mov dl, 1
mov eax, dword [0x520c78]
call fcn.00523f8c
mov dword [ebp - 0x3c], eax
push 0x629a68
push dword [ebp - 0x24]
push 0x629aa4
push dword [ebp - 0x20]
push 0x629ab8
lea eax, [ebp - 0x54]
mov edx, 5
call fcn.00405000
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x248]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x3c]
call fcn.00524f10
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x30]
mov edx, 1
call fcn.004b2d38
lea edx, [ebp - 0x58]
mov ecx, dword [eax]
call dword [ecx + 0x60]
mov edx, dword [ebp - 0x58]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x30]
xor edx, edx
call fcn.004b2d38
lea edx, [ebp - 0x5c]
mov ecx, dword [eax]
call dword [ecx + 0x60]
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 4]
add eax, 0x418
call fcn.00404cd4
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x30]
xor edx, edx
call fcn.004b2d38
lea edx, [ebp - 0x60]
mov ecx, dword [eax]
call dword [ecx + 0x60]
mov eax, dword [ebp - 0x60]
push eax
mov eax, dword [ebp - 4]
call fcn.00606b4c
pop edx
call fcn.0047f338
mov eax, dword [ebp - 0x3c]
call fcn.004bcf30
mov dl, 1
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
call dword [ecx - 4]
push dword [ebp - 0x24]
push 0x629ac4
push dword [ebp - 0x20]
mov eax, dword [ebp - 4]
add eax, 0x41c
mov edx, 3
call fcn.00405000
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x41c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax]
add eax, 0x1cc
mov ecx, 0x629ad0
call fcn.00404f8c
jmp 0x628b7e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
call fcn.0040a15c
test al, al
je 0x628b7e
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x32c]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x68]
lea edx, [ebp - 0x64]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 4]
add eax, 0x274
call fcn.00404cd4
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x274]
mov eax, 0x629a38
call fcn.00405284
mov edi, eax
test edi, edi
jle 0x628bd0
mov eax, dword [ebp - 4]
add eax, 0x274
push eax
mov ecx, edi
dec ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x274]
mov edx, 1
call fcn.004051a0
mov dl, 1
mov eax, esi
mov ecx, dword [eax]
call dword [ecx - 4]
jmp 0x628beb
mov eax, dword [ebp - 4]
add eax, 0x274
mov edx, dword [ebp - 8]
call fcn.00404cd4
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x274]
mov eax, 0x629adc
call fcn.00405284
test eax, eax
jle 0x628c25
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x274]
mov eax, dword [ebp - 4]
call fcn.00627fec
mov eax, dword [ebp - 4]
add eax, 0x274
call fcn.00404c80
jmp 0x629287
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x274]
mov eax, 0x629a44
call fcn.00405284
test eax, eax
jle 0x629287
xor ebx, ebx
lea eax, [ebp - 0x28]
call fcn.00404c80
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x274]
mov eax, 0x629a44
call fcn.00405284
mov edi, eax
cmp edi, 1
jl 0x629250
lea eax, [ebp - 0x20]
push eax
mov ecx, edi
dec ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x274]
mov edx, 1
call fcn.004051a0
mov eax, dword [ebp - 4]
add eax, 0x274
push eax
lea edx, [edi + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x274]
mov ecx, 0x7fffffff
call fcn.004051a0
inc ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov esi, dword [eax + ebx*4 - 4]
mov dword [esi + 0x1ec], 1
lea eax, [esi + 0x1f0]
mov edx, dword [ebp - 0x20]
call fcn.00404cd4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
xor edx, edx
mov dword [eax + 0xd8], edx
mov dword [eax + 0xdc], edx
xor edx, edx
mov dword [eax + 0xd0], edx
mov dword [eax + 0xd4], edx
xor edx, edx
mov dword [eax + 0xe0], edx
mov dword [eax + 0xe4], edx
xor edx, edx
call fcn.0047f514
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x330]
mov dword [eax + 0x1e8], edx
mov edx, dword [ebp - 0x20]
mov eax, 0x629aec
call fcn.00405284
dec eax
jne 0x628d72
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
mov dword [eax + 0x1ec], 7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
add eax, 0x1f0
push eax
mov ecx, 0x7fffffff
mov edx, 2
mov eax, dword [ebp - 0x20]
call fcn.004051a0
jmp 0x628e5d
mov edx, dword [ebp - 0x20]
mov eax, 0x629af8
call fcn.00405284
dec eax
jne 0x628dc3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
mov dword [eax + 0x1ec], 8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
add eax, 0x1f0
push eax
mov ecx, 0x7fffffff
mov edx, 2
mov eax, dword [ebp - 0x20]
call fcn.004051a0
jmp 0x628e5d
mov edx, dword [ebp - 0x20]
mov eax, 0x629b04
call fcn.00405284
dec eax
jne 0x628e11
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
mov dword [eax + 0x1ec], 9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
add eax, 0x1f0
push eax
mov ecx, 0x7fffffff
mov edx, 2
mov eax, dword [ebp - 0x20]
call fcn.004051a0
jmp 0x628e5d
mov edx, dword [ebp - 0x20]
mov eax, 0x629b10
call fcn.00405284
dec eax
jne 0x628e5d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
mov dword [eax + 0x1ec], 0xa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
add eax, 0x1f0
push eax
mov ecx, 0x7fffffff
mov edx, 2
mov eax, dword [ebp - 0x20]
call fcn.004051a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
mov edx, dword [eax + 0x1f0]
mov eax, 0x629b1c
call fcn.00405284
dec eax
jne 0x628f67
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
mov eax, dword [eax + 0x1f0]
mov ecx, 0x64
mov edx, 6
call fcn.004051a0
lea eax, [ebp - 0x24]
push eax
mov edx, dword [ebp - 0x24]
mov eax, 0x629b2c
call fcn.00405284
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.004051a0
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x24]
call fcn.00404d18
mov dl, 0x5f
mov eax, dword [ebp - 0x24]
call fcn.00627e48
cmp eax, 2
jl 0x628ef5
lea eax, [ebp - 0x28]
push eax
mov ecx, 2
mov dl, 0x5f
mov eax, dword [ebp - 0x24]
call fcn.00627eb0
push dword [ebp - 0x28]
push 0x629ac4
lea edx, [ebp - 0x68]
mov eax, ebx
dec eax
call fcn.00409afc
push dword [ebp - 0x68]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
add eax, 0x1cc
mov edx, 3
call fcn.00405000
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
add eax, 0x1f0
push eax
mov eax, dword [ebp - 0x24]
call fcn.00404f40
mov edx, eax
add edx, 6
inc edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
mov eax, dword [eax + 0x1f0]
mov ecx, 0x7fffffff
call fcn.004051a0
jmp 0x628f9f
cmp dword [ebp - 0x28], 0
je 0x628f9f
push dword [ebp - 0x28]
push 0x629ac4
lea edx, [ebp - 0x6c]
mov eax, ebx
dec eax
call fcn.00409afc
push dword [ebp - 0x6c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
add eax, 0x1cc
mov edx, 3
call fcn.00405000
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov esi, dword [eax + ebx*4 - 4]
cmp dword [esi + 0x1ec], 8
jne 0x629233
lea eax, [ebp - 0x28]
mov edx, 0x629ac4
call fcn.00404f48
lea eax, [ebp - 0x24]
mov edx, dword [esi + 0x1f0]
call fcn.00404d18
mov eax, 0x629b38
call fcn.00521648
mov esi, 1
jmp 0x629207
inc esi
cmp esi, 2
jne 0x62907a
push dword [0x681a94]
push 0x629b4c
push dword [ebp - 0x28]
push 0x629b5c
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.00405000
mov eax, dword [ebp - 0x1c]
call fcn.00405140
mov edx, eax
lea eax, [ebp - 0x70]
call fcn.00404e78
mov eax, dword [ebp - 0x70]
call fcn.0040a450
push 0x629b4c
push dword [ebp - 0x28]
push 0x629b5c
lea eax, [ebp - 0x74]
mov edx, 3
call fcn.00405000
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x1c]
call fcn.005229a8
push 0x629b4c
push dword [ebp - 0x28]
push 0x629b5c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
add eax, 0x1f4
mov edx, 3
call fcn.00405000
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 4]
call fcn.00628444
add ebx, eax
push dword [0x681a94]
push 0x629b68
push dword [ebp - 0x28]
lea edx, [ebp - 0x78]
mov eax, esi
call fcn.00409afc
push dword [ebp - 0x78]
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.00405000
mov eax, dword [ebp - 0x1c]
call fcn.00405140
mov edx, eax
lea eax, [ebp - 0x7c]
call fcn.00404e78
mov eax, dword [ebp - 0x7c]
call fcn.0040a450
push 0x629b4c
push dword [ebp - 0x28]
lea edx, [ebp - 0x84]
mov eax, esi
call fcn.00409afc
push dword [ebp - 0x84]
lea eax, [ebp - 0x80]
mov edx, 3
call fcn.00405000
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x1c]
call fcn.005229a8
mov eax, dword [ebp - 0x1c]
call fcn.0040a15c
test al, al
je 0x62922c
mov eax, dword [ebp - 4]
call fcn.00630e28
inc ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov edi, dword [eax + ebx*4 - 4]
mov dword [edi + 0x1ec], 7
lea eax, [edi + 0x1f0]
mov edx, dword [ebp - 0x1c]
call fcn.00404cd4
push 0x629b4c
push dword [ebp - 0x28]
lea edx, [ebp - 0x88]
mov eax, esi
call fcn.00409afc
push dword [ebp - 0x88]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
add eax, 0x1f4
mov edx, 3
call fcn.00405000
lea edx, [ebp - 0x8c]
mov eax, esi
dec eax
call fcn.00409afc
mov ecx, dword [ebp - 0x8c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
add eax, 0x1cc
mov edx, dword [ebp - 0x28]
call fcn.00404f8c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax + ebx*4 - 4]
xor edx, edx
mov dword [eax + 0xd8], edx
mov dword [eax + 0xdc], edx
xor edx, edx
mov dword [eax + 0xd0], edx
mov dword [eax + 0xd4], edx
xor edx, edx
mov dword [eax + 0xe0], edx
mov dword [eax + 0xe4], edx
xor edx, edx
call fcn.0047f514
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov edi, dword [eax + ebx*4 - 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x330]
mov dword [edi + 0x1e8], eax
lea eax, [edi + 0x1ac]
mov edx, dword [ebp - 0x24]
call fcn.00404cd4
mov eax, dword [0x67d258]
cmp dword [eax], 0
je 0x628fe8
mov eax, dword [0x67d258]
mov eax, dword [eax]
mov edx, 0x629b78
call fcn.0040508c
je 0x628fe8
xor eax, eax
call fcn.00521648
mov eax, dword [ebp - 4]
cmp dword [eax + 0x274], 0
je 0x628c4a
mov eax, dword [ebp - 4]
call fcn.00630e28
jmp 0x628c4a
mov eax, dword [ebp - 4]
mov dword [eax + 0x300], ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x424]
mov eax, dword [eax + 0x22c]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x64]
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x424]
mov eax, dword [eax + 0x230]
call fcn.0043df60
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x274]
mov eax, 0x629b1c
call fcn.00405284
dec eax
jne 0x6299bd
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x274]
mov ecx, 0x64
mov edx, 6
call fcn.004051a0
lea eax, [ebp - 0x24]
push eax
mov edx, dword [ebp - 0x24]
mov eax, 0x629b2c
call fcn.00405284
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.004051a0
mov eax, dword [ebp - 4]
add eax, 0x41c
mov edx, dword [ebp - 0x24]
call fcn.00404cd4
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x41c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x458]
mov eax, dword [eax]
add eax, 0x1cc
mov ecx, 0x629ad0
call fcn.00404f8c
mov eax, dword [ebp - 4]
add eax, 0x274
push eax
mov eax, dword [ebp - 0x24]
call fcn.00404f40
mov edx, eax
add edx, 6
inc edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x274]
mov ecx, 0x7fffffff
call fcn.004051a0
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x41c]
mov eax, 0x629ac4
call fcn.00405284
mov ecx, eax
dec ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x41c]
mov edx, 1
call fcn.004051a0
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x41c]
mov eax, 0x629ac4
call fcn.00405284
mov edx, eax
inc edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x41c]
mov ecx, 0x7fffffff
call fcn.004051a0
xor ecx, ecx
mov dl, 1
mov eax, dword [0x520c78]
call fcn.00523f8c
mov dword [ebp - 0x3c], eax
xor eax, eax
call fcn.0052d74c
test eax, eax
je 0x62957e
push 0x629b84
push dword [ebp - 0x14]
push 0x629aa4
push dword [ebp - 0x18]
lea eax, [ebp - 0x90]
mov edx, 4
call fcn.00405000
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x248]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x3c]
call fcn.00524f10
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x30]
xor edx, edx
call fcn.004b2d38
lea edx, [ebp - 0x24]
mov ecx, dword [eax]
call dword [ecx + 0x60]
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x30]
mov edx, 1
call fcn.004b2d38
lea edx, [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x60]
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x30]
mov edx, 2
call fcn.004b2d38
mov edx, dword [eax]
call dword [edx + 0x58]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x30]
mov edx, 4
call fcn.004b2d38
mov edx, dword [eax]
call dword [edx + 0x58]
mov edx, dword [ebp - 4]
mov dword [edx + 0x478], eax
cmp dword [ebp - 0x2c], 0
jg 0x629461
mov dword [ebp - 0x2c], 1
mov eax, dword [ebp - 0x2c]
push eax
lea eax, [ebp - 0x40]
mov ecx, 1
mov edx, dword [0x628804]
call fcn.004061e8
add esp, 4
cmp dword [ebp - 0x10], 0
jne 0x629490
lea eax, [ebp - 0x10]
mov edx, 0x629be0
call fcn.00404d18
jmp 0x6294af
cmp dword [ebp - 0x2c], 1
jle 0x6294af
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x40]
call fcn.00406034
mov ecx, eax
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x10]
call fcn.0057ee14
mov eax, dword [ebp - 0x3c]
call fcn.004bcf30
push 0x629bf4
push dword [ebp - 0x14]
push 0x629c2c
push dword [ebp - 0x18]
lea eax, [ebp - 0x94]
mov edx, 4
call fcn.00405000
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x248]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov al, byte [0x629c3c]
push eax
lea eax, [ebp - 0x98]
push eax
lea edx, [ebp - 0x9c]
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax + 0x248]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov eax, dword [ebp - 0x9c]
mov ecx, 0x629c48
mov edx, 0x629c54
call fcn.0040f7a4
mov edx, dword [ebp - 0x98]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x3c]
call fcn.00524f10
jmp 0x629568
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x30]
xor edx, edx
call fcn.004b2d38
lea edx, [ebp - 0xa0]
mov ecx, dword [eax]
call dword [ecx + 0x60]
mov edx, dword [ebp - 0xa0]
lea eax, [ebp - 0x24]
call fcn.00404f48
mov eax, dword [ebp - 0x3c]
call fcn.004bf664
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0xa1], 0
je 0x62953a
mov eax, dword [ebp - 0x3c]
call fcn.004bcf30
jmp 0x6295f1
xor eax, eax
push ebp
push 0x6295e7
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x629c60
push dword [ebp - 0x14]
push 0x629aa4
push dword [ebp - 0x18]
lea eax, [ebp - 0xa4]
mov edx, 4
call fcn.00405000
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x248]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x3c]
call fcn.00524f10
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x30]
xor edx, edx
call fcn.004b2d38
lea edx, [ebp - 0x24]
mov ecx, dword [eax]
call dword [ecx + 0x60]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x6295f1
mov dl, 1
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
call dword [ecx - 4]
lea eax, [ebp - 0x24]
mov edx, 0x629a44
call fcn.00404f48
xor ebx, ebx
mov dword [ebp - 0x34], 0xffffffff
mov edx, dword [ebp - 0x24]
mov eax, 0x629a44
call fcn.00405284
mov edi, eax
cmp edi, 1
jl 0x629743
lea eax, [ebp - 0x20]
push eax
mov ecx, edi
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.004051a0
lea eax, [ebp - 0x24]
push eax
lea edx, [edi + 1]
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0x24]
call fcn.004051a0
cmp dword [ebp - 0x34], 0xffffffff
jne 0x62966b
mov edx, dword [ebp - 0x20]
mov eax, 0x629c94
call fcn.00405284
test eax, eax
jle 0x62966b
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0x10], 0
jne 0x62967b
cmp dword [ebp - 0x34], 0
jge 0x629743
inc ebx
push ebx
mov eax, dword [ebp - 4]
add eax, 0x290
mov ecx, 1
mov edx, dword [0x604504]
call fcn.004061e8
add esp, 4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x290]
lea eax, [eax + ebx*4 - 4]
mov edx, dword [ebp - 0x20]
call fcn.00404cd4
cmp ebx, 1
jne 0x629611
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x290]
mov edx, dword [eax]
mov eax, 0x629b2c
call fcn.00405284
dec eax
jne 0x629611
mov eax, dword [ebp - 4]
add eax, 0x3dc
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x290]
mov edx, dword [eax]
mov eax, 0x629a5c
call fcn.00405284
mov ecx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x290]
mov eax, dword [eax]
mov edx, 1
call fcn.004051a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x290]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x290]
mov edx, dword [eax]
mov eax, 0x629a5c
call fcn.00405284
mov edx, eax
inc edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x290]
mov eax, dword [eax]
mov ecx, 0x7fffffff
call fcn.004051a0
jmp 0x629611
push ebx
mov eax, dword [ebp - 4]
add eax, 0x294
mov ecx, 1
mov edx, dword [0x604528]
call fcn.004061e8
add esp, 4
mov edi, ebx
dec edi
test edi, edi
jl 0x6298b9
inc edi
xor esi, esi
cmp dword [ebp - 0x10], 0
je 0x629810
lea eax, [ebx + 1]
sub eax, dword [ebp - 0x34]
cdq
idiv dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jne 0x62978d
mov dword [ebp - 0x30], ebx
cmp dword [ebp - 0x2c], 1
jg 0x6297a0
lea eax, [ebp - 0x24]
mov edx, dword [ebp - 0x10]
call fcn.00404d18
jmp 0x6297df
mov eax, esi
sub eax, dword [ebp - 0x34]
cdq
idiv dword [ebp - 0x30]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
jl 0x6297bb
mov eax, dword [ebp - 0x2c]
dec eax
cmp eax, dword [ebp - 0x38]
jge 0x6297c8
lea eax, [ebp - 0x24]
mov edx, dword [ebp - 0x10]
call fcn.00404d18
jmp 0x6297df
mov eax, esi
sub eax, dword [ebp - 0x34]
cdq
idiv dword [ebp - 0x30]
mov edx, dword [ebp - 0x40]
mov edx, dword [edx + eax*4]
lea eax, [ebp - 0x24]
call fcn.00404d18
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x290]
mov eax, dword [eax + esi*4]
lea ecx, [ebp - 0xa8]
mov edx, dword [ebp - 0x24]
call fcn.0057f9f0
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x290]
lea eax, [eax + esi*4]
call fcn.00404cd4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x294]
lea eax, [eax + esi*4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x290]
mov edx, dword [edx + esi*4]
call fcn.00404cd4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x290]
mov edx, dword [eax + esi*4]
mov eax, 0x629cac
call fcn.00405284
test eax, eax
jle 0x6298b1
lea eax, [ebp - 0xac]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x290]
mov ecx, dword [eax + esi*4]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
call fcn.0057fbb0
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x290]
lea eax, [eax + esi*4]
call fcn.00404cd4
lea eax, [ebp - 0xb0]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x294]
mov ecx, dword [eax + esi*4]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
call fcn.0057fbb0
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x294]
lea eax, [eax + esi*4]
call fcn.00404cd4
inc esi
dec edi
jne 0x62976d
mov edi, ebx
dec edi
test edi, edi
jl 0x6298ff
inc edi
xor esi, esi
mov eax, 0x629c94
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x290]
mov edx, dword [edx + esi*4]
call fcn.00405284
test eax, eax
jle 0x6298fb
push esi
mov eax, dword [ebp - 4]
add eax, 0x290
mov ecx, 1
mov edx, dword [0x604504]
call fcn.004061e8
add esp, 4
jmp 0x6298ff
inc esi
dec edi
jne 0x6298c3
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x3dc]
mov eax, 0x629cb8
call fcn.00405284
mov esi, eax
test esi, esi
jle 0x6299bd
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x3dc]
mov eax, 0x629cc8
call fcn.00405284
mov edx, eax
inc edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3dc]
mov ecx, 0x7fffffff
call fcn.004051a0
lea eax, [ebp - 0x24]
push eax
mov edx, dword [ebp - 0x20]
mov eax, 0x629cd4
call fcn.00405284
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x20]
call fcn.004051a0
cmp dword [ebp - 0x24], 0
jne 0x62997d
lea eax, [ebp - 0x24]
mov edx, 0x629ce0
call fcn.00404d18
mov eax, dword [ebp - 0x24]
call fcn.00409c68
dec eax
mov edx, dword [ebp - 4]
mov dword [edx + 0x3e8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x290]
call fcn.0040602c
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 4]
add eax, 0x3e0
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x290]
mov ecx, dword [ebp - 0x38]
mov edx, dword [edx + ecx*4 - 4]
call fcn.00404cd4
mov eax, dword [ebp - 4]
call fcn.0062a69c
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x324], edx
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.00631b74
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x629a1a
lea eax, [ebp - 0xb0]
mov edx, 0x1c
call fcn.00404ca4
lea eax, [ebp - 0x40]
mov edx, dword [0x628804]
call fcn.00406308
lea eax, [ebp - 0x28]
mov edx, 9
call fcn.00404ca4
ret