Function at 0x633328
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffb7c
mov eax, 0x56498f
xor edx, edx
push ebx
push esi
push edi
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x2c], 0x6fec88
mov dword [ebp - 0x28], esp
mov dword [ebp - 0x30], eax
mov word [ebp - 0x24], 0
mov dword [ebp - 0x18], edx
mov ecx, dword fs:[0]
mov dword [ebp - 0x34], ecx
lea eax, [ebp - 0x34]
mov dword fs:[0], eax
mov esi, ebx
mov edx, dword [esi + 8]
mov dword [ebp - 0x104], edx
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x100], ecx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xfc], eax
mov edx, dword [esi + 0x14]
mov dword [ebp - 0xf8], edx
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [ebp - 0x104]
je 0x63341e
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebp + 0x1c]
je 0x6333b2
mov edx, dword [ebp - 0x104]
cmp edx, dword [ebp - 0x100]
jne 0x63341a
mov ecx, dword [ebp + 0x24]
cmp ecx, dword [ebp - 0xf8]
jne 0x6333d0
mov eax, dword [ebp + 0x18]
sub eax, dword [ebp - 0x104]
mov ecx, 0x18
cdq
idiv ecx
jmp 0x633416
call fcn.00635170
mov ecx, eax
mov eax, dword [ebp + 0x24]
sub eax, dword [ebp - 0xf8]
test eax, eax
jns 0x6333e7
add eax, 3
sar eax, 2
dec eax
imul ecx, eax
mov eax, dword [ebp + 0x18]
sub eax, dword [ebp + 0x1c]
mov esi, 0x18
cdq
idiv esi
add ecx, eax
mov eax, dword [ebp - 0xfc]
sub eax, dword [ebp - 0x104]
mov esi, 0x18
cdq
idiv esi
add ecx, eax
mov eax, ecx
test eax, eax
je 0x63341e
xor edx, edx
jmp 0x633423
mov edx, 1
test dl, dl
je 0x633556
mov ecx, dword [ebp + 0x28]
mov dword [ebp - 0x38], ecx
cmp dword [ebx + 0x30], 0
sete al
and eax, 1
test al, al
jne 0x6334b9
mov dword [ebp - 0x3c], ebx
mov edx, dword [ebp - 0x3c]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x11c], ecx
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x118], edx
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x114], eax
lea eax, [ebp - 0x124]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0x110], ecx
mov edx, dword [eax + 8]
mov dword [ebp - 0x40], ebx
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x134], eax
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x130], eax
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + 0x14]
lea ecx, [ebp - 0x13c]
mov dword [ebp - 0x128], eax
cmp edx, dword [ecx + 0xc]
jne 0x6334c0
push ebx
call fcn.00634934
pop ecx
mov edx, dword [ebx + 8]
add edx, 0xffffffe8
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x44]
mov dword [ebp - 4], eax
test eax, eax
je 0x633513
mov word [ebp - 0x24], 0x14
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x38]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x38]
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x38]
mov eax, dword [ecx + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [ecx + 0x14]
mov dword [edx + 0x14], eax
mov word [ebp - 0x24], 8
sub dword [ebx + 8], 0x18
inc dword [ebx + 0x30]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x48], ebx
mov edx, dword [ebp - 0x48]
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 0x48]
mov ecx, dword [edx + 0xc]
mov dword [eax + 0xc], ecx
mov edx, dword [ebp - 0x48]
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x10], ecx
mov edx, dword [ebp - 0x48]
mov ecx, dword [edx + 0x14]
mov dword [eax + 0x14], ecx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x34]
mov dword fs:[0], edx
jmp 0x63490b
lea esi, [ebx + 0x18]
mov eax, dword [esi + 8]
mov dword [ebp - 0x14c], eax
mov edx, dword [esi + 0xc]
mov dword [ebp - 0x148], edx
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x144], ecx
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x140], eax
mov edx, dword [ebp + 0x18]
cmp edx, dword [ebp - 0x14c]
je 0x63360e
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [ebp + 0x1c]
je 0x6335a2
mov eax, dword [ebp - 0x14c]
cmp eax, dword [ebp - 0x148]
jne 0x63360a
mov edx, dword [ebp + 0x24]
cmp edx, dword [ebp - 0x140]
jne 0x6335c0
mov eax, dword [ebp + 0x18]
sub eax, dword [ebp - 0x14c]
mov ecx, 0x18
cdq
idiv ecx
jmp 0x633606
call fcn.00635170
mov ecx, eax
mov eax, dword [ebp + 0x24]
sub eax, dword [ebp - 0x140]
test eax, eax
jns 0x6335d7
add eax, 3
sar eax, 2
dec eax
imul ecx, eax
mov eax, dword [ebp + 0x18]
sub eax, dword [ebp + 0x1c]
mov esi, 0x18
cdq
idiv esi
add ecx, eax
mov eax, dword [ebp - 0x144]
sub eax, dword [ebp - 0x14c]
mov esi, 0x18
cdq
idiv esi
add ecx, eax
mov eax, ecx
test eax, eax
je 0x63360e
xor edx, edx
jmp 0x633613
mov edx, 1
test dl, dl
je 0x633861
mov ecx, dword [ebp + 0x28]
mov dword [ebp - 0x4c], ecx
cmp dword [ebx + 0x30], 0
sete al
and eax, 1
test al, al
jne 0x6336b3
lea edx, [ebx + 0x18]
mov dword [ebp - 0x50], edx
mov ecx, dword [ebp - 0x50]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x50]
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x160], ecx
mov eax, dword [ebp - 0x50]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x15c], edx
lea edx, [ebp - 0x16c]
mov ecx, dword [ebp - 0x50]
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x158], eax
lea eax, [ebx + 0x18]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 8]
mov dword [ebp - 0x17c], eax
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x178], eax
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 0x14]
lea edx, [ebp - 0x184]
mov dword [ebp - 0x170], eax
cmp ecx, dword [edx + 0x10]
jne 0x6336ba
push ebx
call fcn.00634d68
pop ecx
mov ecx, dword [ebx + 0x20]
mov dword [ebp - 0x58], ecx
mov eax, dword [ebp - 0x58]
mov dword [ebp - 8], eax
test eax, eax
je 0x63370a
mov word [ebp - 0x24], 0x2c
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [ecx + 0x14]
mov dword [edx + 0x14], eax
mov word [ebp - 0x24], 0x20
add dword [ebx + 0x20], 0x18
inc dword [ebx + 0x30]
add ebx, 0x18
mov dword [ebp - 0x5c], ebx
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 8]
mov dword [ebp - 0x194], edx
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x190], eax
mov edx, dword [ebp - 0x5c]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x188], edx
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x194]
mov dword [ebp - 0x1ac], ecx
mov eax, dword [ebp - 0x190]
mov dword [ebp - 0x1a8], eax
mov edx, dword [ebp - 0x18c]
mov dword [ebp - 0x1a4], edx
mov ecx, dword [ebp - 0x188]
mov dword [ebp - 0x1a0], ecx
mov eax, dword [ebp - 0x1ac]
sub eax, dword [ebp - 0x1a8]
mov ecx, 0x18
cdq
idiv ecx
dec eax
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
jl 0x6337aa
call fcn.00635170
push eax
mov eax, dword [ebp - 0x60]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x6337c5
call fcn.00635170
mov edx, dword [ebp - 0x60]
neg edx
add eax, edx
dec eax
push eax
call fcn.00635170
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 0
jne 0x6337d7
add dword [ebp - 0x1ac], 0xffffffe8
jmp 0x63382b
mov eax, dword [ebp - 0x64]
shl eax, 2
add dword [ebp - 0x1a0], eax
mov ecx, dword [ebp - 0x1a0]
mov eax, dword [ecx]
mov dword [ebp - 0x1a8], eax
call fcn.00635170
mov edx, eax
shl edx, 3
lea edx, [edx + edx*2]
add edx, dword [ebp - 0x1a8]
mov dword [ebp - 0x1a4], edx
call fcn.00635170
imul dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
sub ecx, eax
mov eax, ecx
shl eax, 3
lea eax, [eax + eax*2]
add eax, dword [ebp - 0x1a8]
mov dword [ebp - 0x1ac], eax
mov edx, dword [ebp - 0x1ac]
mov dword [esi + 8], edx
mov ecx, dword [ebp - 0x1a8]
mov dword [esi + 0xc], ecx
mov eax, dword [ebp - 0x1a4]
mov dword [esi + 0x10], eax
mov edx, dword [ebp - 0x1a0]
mov dword [esi + 0x14], edx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x34]
mov dword fs:[0], edx
jmp 0x63490b
mov esi, ebx
mov ecx, dword [esi + 8]
mov dword [ebp - 0x1c4], ecx
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x1c0], eax
mov edx, dword [esi + 0x10]
mov dword [ebp - 0x1bc], edx
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x1b8], ecx
mov eax, dword [ebp - 0x1b8]
cmp eax, dword [ebp + 0x24]
jne 0x6338a7
mov eax, dword [ebp + 0x18]
sub eax, dword [ebp - 0x1c4]
mov ecx, 0x18
cdq
idiv ecx
mov edi, eax
jmp 0x6338eb
call fcn.00635170
mov edi, eax
mov eax, dword [ebp + 0x24]
sub eax, dword [ebp - 0x1b8]
test eax, eax
jns 0x6338be
add eax, 3
sar eax, 2
dec eax
imul edi, eax
mov eax, dword [ebp + 0x18]
sub eax, dword [ebp + 0x1c]
mov ecx, 0x18
cdq
idiv ecx
add edi, eax
mov eax, dword [ebp - 0x1bc]
sub eax, dword [ebp - 0x1c4]
mov ecx, 0x18
cdq
idiv ecx
add edi, eax
mov eax, dword [ebx + 0x30]
shr eax, 1
cmp eax, edi
jbe 0x633f92
mov dword [ebp - 0x68], ebx
mov edx, dword [ebp - 0x68]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 0x68]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0x68]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x1d4], eax
mov edx, dword [ebp - 0x68]
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0x1d0], ecx
mov eax, dword [ebp - 0x1dc]
mov dword [ebp - 0x6c], eax
cmp dword [ebx + 0x30], 0
sete dl
and edx, 1
test dl, dl
jne 0x6339bc
mov dword [ebp - 0x70], ebx
mov ecx, dword [ebp - 0x70]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x1f4], eax
mov edx, dword [ebp - 0x70]
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x1f0], ecx
mov eax, dword [ebp - 0x70]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x1ec], edx
lea edx, [ebp - 0x1fc]
mov ecx, dword [ebp - 0x70]
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x1e8], eax
mov ecx, dword [edx + 8]
mov dword [ebp - 0x74], ebx
mov eax, dword [ebp - 0x74]
mov edx, dword [eax + 8]
mov dword [ebp - 0x20c], edx
mov eax, dword [ebp - 0x74]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x208], edx
mov eax, dword [ebp - 0x74]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x204], edx
mov eax, dword [ebp - 0x74]
mov edx, dword [eax + 0x14]
lea eax, [ebp - 0x214]
mov dword [ebp - 0x200], edx
cmp ecx, dword [eax + 0xc]
jne 0x6339c3
push ebx
call fcn.00634934
pop ecx
mov edx, dword [ebx + 8]
add edx, 0xffffffe8
mov dword [ebp - 0x78], edx
mov ecx, dword [ebp - 0x78]
mov dword [ebp - 0xc], ecx
test ecx, ecx
je 0x633a16
mov word [ebp - 0x24], 0x44
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x6c]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x6c]
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [edx + 0xc]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x6c]
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, dword [edx + 0x14]
mov dword [eax + 0x14], ecx
mov word [ebp - 0x24], 0x38
sub dword [ebx + 8], 0x18
inc dword [ebx + 0x30]
mov dword [ebp - 0xa0], ebx
mov eax, dword [ebp - 0xa0]
add esp, 0xffffffe8
mov edx, dword [eax + 8]
mov dword [ebp - 0x2cc], edx
mov eax, dword [ebp - 0xa0]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x2c8], edx
mov ecx, dword [ebp - 0xa0]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x2c4], eax
mov edx, dword [ebp - 0xa0]
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0x2c0], ecx
mov eax, dword [ebp - 0x2cc]
mov dword [ebp - 0x2e4], eax
mov edx, dword [ebp - 0x2c8]
mov dword [ebp - 0x2e0], edx
mov ecx, dword [ebp - 0x2c4]
mov dword [ebp - 0x2dc], ecx
mov ecx, 0x18
mov eax, dword [ebp - 0x2c0]
mov dword [ebp - 0x2d8], eax
mov eax, dword [ebp - 0x2e4]
sub eax, dword [ebp - 0x2e0]
cdq
idiv ecx
inc eax
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xa4], 0
jl 0x633acb
call fcn.00635170
push eax
mov eax, dword [ebp - 0xa4]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x633ae9
call fcn.00635170
mov edx, dword [ebp - 0xa4]
neg edx
add eax, edx
dec eax
push eax
call fcn.00635170
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0xa8], 0
jne 0x633b01
add dword [ebp - 0x2e4], 0x18
jmp 0x633b5e
mov eax, dword [ebp - 0xa8]
shl eax, 2
add dword [ebp - 0x2d8], eax
mov ecx, dword [ebp - 0x2d8]
mov eax, dword [ecx]
mov dword [ebp - 0x2e0], eax
call fcn.00635170
mov edx, eax
shl edx, 3
lea edx, [edx + edx*2]
add edx, dword [ebp - 0x2e0]
mov dword [ebp - 0x2dc], edx
call fcn.00635170
imul dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xa4]
sub ecx, eax
mov eax, ecx
shl eax, 3
lea eax, [eax + eax*2]
add eax, dword [ebp - 0x2e0]
mov dword [ebp - 0x2e4], eax
mov edx, dword [ebp - 0x2e4]
mov dword [esp + 8], edx
mov ecx, dword [ebp - 0x2e0]
mov dword [esp + 0xc], ecx
mov eax, dword [ebp - 0x2dc]
mov dword [esp + 0x10], eax
mov edx, dword [ebp - 0x2d8]
mov dword [esp + 0x14], edx
add esp, 0xffffffe8
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x8c], ebx
mov ecx, dword [ebp - 0x8c]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x26c], eax
mov edx, dword [ebp - 0x8c]
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x268], ecx
mov eax, dword [ebp - 0x8c]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x264], edx
mov ecx, dword [ebp - 0x8c]
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x260], eax
mov edx, dword [ebp - 0x26c]
mov dword [ebp - 0x284], edx
mov ecx, dword [ebp - 0x268]
mov dword [ebp - 0x280], ecx
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x27c], eax
mov edx, dword [ebp - 0x260]
mov dword [ebp - 0x278], edx
mov eax, dword [ebp - 0x284]
sub eax, dword [ebp - 0x280]
mov ecx, 0x18
cdq
idiv ecx
add eax, dword [ebp - 0x88]
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0
jl 0x633c3f
call fcn.00635170
push eax
mov eax, dword [ebp - 0x90]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x633c5d
call fcn.00635170
mov edx, dword [ebp - 0x90]
neg edx
add eax, edx
dec eax
push eax
call fcn.00635170
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0
jne 0x633c80
mov eax, dword [ebp - 0x88]
shl eax, 3
lea eax, [eax + eax*2]
add dword [ebp - 0x284], eax
jmp 0x633cdd
mov ecx, dword [ebp - 0x94]
shl ecx, 2
add dword [ebp - 0x278], ecx
mov eax, dword [ebp - 0x278]
mov edx, dword [eax]
mov dword [ebp - 0x280], edx
call fcn.00635170
mov ecx, eax
shl ecx, 3
lea ecx, [ecx + ecx*2]
add ecx, dword [ebp - 0x280]
mov dword [ebp - 0x27c], ecx
call fcn.00635170
imul dword [ebp - 0x94]
mov edx, dword [ebp - 0x90]
sub edx, eax
mov eax, edx
shl eax, 3
lea eax, [eax + eax*2]
add eax, dword [ebp - 0x280]
mov dword [ebp - 0x284], eax
mov ecx, dword [ebp - 0x284]
mov dword [ebp - 0x29c], ecx
mov eax, dword [ebp - 0x280]
mov dword [ebp - 0x298], eax
mov edx, dword [ebp - 0x27c]
mov dword [ebp - 0x294], edx
mov ecx, dword [ebp - 0x278]
mov dword [ebp - 0x290], ecx
mov eax, dword [ebp - 0x29c]
mov dword [ebp - 0x2b4], eax
mov edx, dword [ebp - 0x298]
mov dword [ebp - 0x2b0], edx
mov ecx, dword [ebp - 0x294]
mov dword [ebp - 0x2ac], ecx
mov eax, dword [ebp - 0x290]
mov dword [ebp - 0x2a8], eax
mov eax, dword [ebp - 0x2b4]
sub eax, dword [ebp - 0x2b0]
mov ecx, 0x18
cdq
idiv ecx
inc eax
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0
jl 0x633d76
call fcn.00635170
push eax
mov eax, dword [ebp - 0x98]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x633d94
call fcn.00635170
mov edx, dword [ebp - 0x98]
neg edx
add eax, edx
dec eax
push eax
call fcn.00635170
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0
jne 0x633dac
add dword [ebp - 0x2b4], 0x18
jmp 0x633e09
mov eax, dword [ebp - 0x9c]
shl eax, 2
add dword [ebp - 0x2a8], eax
mov ecx, dword [ebp - 0x2a8]
mov eax, dword [ecx]
mov dword [ebp - 0x2b0], eax
call fcn.00635170
mov edx, eax
shl edx, 3
lea edx, [edx + edx*2]
add edx, dword [ebp - 0x2b0]
mov dword [ebp - 0x2ac], edx
call fcn.00635170
imul dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x98]
sub ecx, eax
mov eax, ecx
shl eax, 3
lea eax, [eax + eax*2]
add eax, dword [ebp - 0x2b0]
mov dword [ebp - 0x2b4], eax
mov edx, dword [ebp - 0x2b4]
mov dword [esp + 8], edx
mov ecx, dword [ebp - 0x2b0]
mov dword [esp + 0xc], ecx
mov eax, dword [ebp - 0x2ac]
mov dword [esp + 0x10], eax
mov edx, dword [ebp - 0x2a8]
mov dword [esp + 0x14], edx
mov dword [ebp - 0x7c], ebx
mov ecx, dword [ebp - 0x7c]
add esp, 0xffffffe8
mov eax, dword [ecx + 8]
mov dword [ebp - 0x23c], eax
mov edx, dword [ebp - 0x7c]
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x238], ecx
mov eax, dword [ebp - 0x7c]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x234], edx
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x230], eax
mov edx, dword [ebp - 0x23c]
mov dword [ebp - 0x254], edx
mov ecx, dword [ebp - 0x238]
mov dword [ebp - 0x250], ecx
mov ecx, 0x18
mov eax, dword [ebp - 0x234]
mov dword [ebp - 0x24c], eax
mov edx, dword [ebp - 0x230]
mov dword [ebp - 0x248], edx
mov eax, dword [ebp - 0x254]
sub eax, dword [ebp - 0x250]
cdq
idiv ecx
add eax, 2
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
jl 0x633ec9
call fcn.00635170
push eax
mov eax, dword [ebp - 0x80]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x633ee4
call fcn.00635170
mov edx, dword [ebp - 0x80]
neg edx
add eax, edx
dec eax
push eax
call fcn.00635170
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0
jne 0x633efc
add dword [ebp - 0x254], 0x30
jmp 0x633f56
mov eax, dword [ebp - 0x84]
shl eax, 2
add dword [ebp - 0x248], eax
mov ecx, dword [ebp - 0x248]
mov eax, dword [ecx]
mov dword [ebp - 0x250], eax
call fcn.00635170
mov edx, eax
shl edx, 3
lea edx, [edx + edx*2]
add edx, dword [ebp - 0x250]
mov dword [ebp - 0x24c], edx
call fcn.00635170
imul dword [ebp - 0x84]
mov ecx, dword [ebp - 0x80]
sub ecx, eax
mov eax, ecx
shl eax, 3
lea eax, [eax + eax*2]
add eax, dword [ebp - 0x250]
mov dword [ebp - 0x254], eax
mov edx, dword [ebp - 0x254]
mov dword [esp + 8], edx
mov ecx, dword [ebp - 0x250]
mov dword [esp + 0xc], ecx
mov eax, dword [ebp - 0x24c]
mov dword [esp + 0x10], eax
mov edx, dword [ebp - 0x248]
mov dword [esp + 0x14], edx
lea ecx, [ebp - 0x22c]
push ecx
call fcn.00632f24
add esp, 0x4c
jmp 0x634603
lea eax, [ebx + 0x18]
mov edx, dword [eax + 8]
mov dword [ebp - 0x2fc], edx
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x2f8], ecx
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x2f4], edx
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x2f0], eax
mov ecx, dword [ebp - 0x2fc]
mov dword [ebp - 0x314], ecx
mov eax, dword [ebp - 0x2f8]
mov dword [ebp - 0x310], eax
mov edx, dword [ebp - 0x2f4]
mov dword [ebp - 0x30c], edx
mov ecx, dword [ebp - 0x2f0]
mov dword [ebp - 0x308], ecx
mov eax, dword [ebp - 0x314]
sub eax, dword [ebp - 0x310]
mov ecx, 0x18
cdq
idiv ecx
mov esi, eax
dec esi
test esi, esi
jl 0x634015
call fcn.00635170
push eax
mov eax, esi
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x63402f
call fcn.00635170
mov edx, esi
neg edx
add eax, edx
dec eax
push eax
call fcn.00635170
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 0
jne 0x634047
add dword [ebp - 0x314], 0xffffffe8
jmp 0x63409e
mov eax, dword [ebp - 0xac]
shl eax, 2
add dword [ebp - 0x308], eax
mov ecx, dword [ebp - 0x308]
mov eax, dword [ecx]
mov dword [ebp - 0x310], eax
call fcn.00635170
mov edx, eax
shl edx, 3
lea edx, [edx + edx*2]
add edx, dword [ebp - 0x310]
mov dword [ebp - 0x30c], edx
call fcn.00635170
imul dword [ebp - 0xac]
sub esi, eax
mov ecx, esi
shl ecx, 3
lea ecx, [ecx + ecx*2]
add ecx, dword [ebp - 0x310]
mov dword [ebp - 0x314], ecx
mov eax, dword [ebp - 0x314]
mov dword [ebp - 0x32c], eax
mov edx, dword [ebp - 0x310]
mov dword [ebp - 0x328], edx
mov ecx, dword [ebp - 0x30c]
mov dword [ebp - 0x324], ecx
mov eax, dword [ebp - 0x308]
mov dword [ebp - 0x320], eax
mov edx, dword [ebp - 0x32c]
mov dword [ebp - 0xb0], edx
cmp dword [ebx + 0x30], 0
sete cl
and ecx, 1
test cl, cl
jne 0x63414a
lea eax, [ebx + 0x18]
lea edx, [ebx + 0x18]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x344], ecx
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x340], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x33c], ecx
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x338], eax
lea eax, [ebp - 0x34c]
mov ecx, dword [eax + 8]
mov eax, dword [edx + 8]
mov dword [ebp - 0x35c], eax
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x358], eax
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x354], eax
lea eax, [ebp - 0x364]
mov edx, dword [edx + 0x14]
mov dword [ebp - 0x350], edx
cmp ecx, dword [eax + 0x10]
jne 0x634151
push ebx
call fcn.00634d68
pop ecx
mov edx, dword [ebx + 0x20]
mov dword [ebp - 0xb4], edx
mov ecx, dword [ebp - 0xb4]
mov dword [ebp - 0x10], ecx
test ecx, ecx
je 0x6341b0
mov word [ebp - 0x24], 0x5c
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xb0]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xb0]
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [edx + 0xc]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xb0]
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, dword [edx + 0x14]
mov dword [eax + 0x14], ecx
mov word [ebp - 0x24], 0x50
add dword [ebx + 0x20], 0x18
inc dword [ebx + 0x30]
lea eax, [ebx + 0x18]
mov dword [ebp - 0xd0], eax
add esp, 0xffffffe8
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 8]
mov dword [ebp - 0x3ec], eax
mov edx, dword [ebp - 0xd0]
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x3e8], ecx
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x3e4], edx
mov ecx, dword [ebp - 0xd0]
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x3e0], eax
mov edx, dword [ebp - 0x3ec]
mov dword [ebp - 0x404], edx
mov ecx, dword [ebp - 0x3e8]
mov dword [ebp - 0x400], ecx
mov ecx, 0x18
mov eax, dword [ebp - 0x3e4]
mov dword [ebp - 0x3fc], eax
mov edx, dword [ebp - 0x3e0]
mov dword [ebp - 0x3f8], edx
mov eax, dword [ebp - 0x404]
sub eax, dword [ebp - 0x400]
cdq
idiv ecx
dec eax
mov dword [ebp - 0xd4], eax
cmp dword [ebp - 0xd4], 0
jl 0x634268
call fcn.00635170
push eax
mov eax, dword [ebp - 0xd4]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x634286
call fcn.00635170
mov edx, dword [ebp - 0xd4]
neg edx
add eax, edx
dec eax
push eax
call fcn.00635170
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0xd8], eax
cmp dword [ebp - 0xd8], 0
jne 0x63429e
add dword [ebp - 0x404], 0xffffffe8
jmp 0x6342fb
mov eax, dword [ebp - 0xd8]
shl eax, 2
add dword [ebp - 0x3f8], eax
mov ecx, dword [ebp - 0x3f8]
mov eax, dword [ecx]
mov dword [ebp - 0x400], eax
call fcn.00635170
mov edx, eax
shl edx, 3
lea edx, [edx + edx*2]
add edx, dword [ebp - 0x400]
mov dword [ebp - 0x3fc], edx
call fcn.00635170
imul dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xd4]
sub ecx, eax
mov eax, ecx
shl eax, 3
lea eax, [eax + eax*2]
add eax, dword [ebp - 0x400]
mov dword [ebp - 0x404], eax
mov edx, dword [ebp - 0x404]
mov dword [esp + 8], edx
mov ecx, dword [ebp - 0x400]
mov dword [esp + 0xc], ecx
lea ecx, [ebx + 0x18]
mov eax, dword [ebp - 0x3fc]
mov dword [esp + 0x10], eax
mov edx, dword [ebp - 0x3f8]
mov dword [esp + 0x14], edx
mov dword [ebp - 0xc4], ecx
mov eax, dword [ebp - 0xc4]
add esp, 0xffffffe8
mov edx, dword [eax + 8]
mov dword [ebp - 0x3bc], edx
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x3b8], eax
mov edx, dword [ebp - 0xc4]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x3b4], ecx
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x3b0], edx
mov ecx, dword [ebp - 0x3bc]
mov dword [ebp - 0x3d4], ecx
mov eax, dword [ebp - 0x3b8]
mov dword [ebp - 0x3d0], eax
mov edx, dword [ebp - 0x3b4]
mov dword [ebp - 0x3cc], edx
mov ecx, dword [ebp - 0x3b0]
mov dword [ebp - 0x3c8], ecx
mov ecx, 0x18
mov eax, dword [ebp - 0x3d4]
sub eax, dword [ebp - 0x3d0]
cdq
idiv ecx
add eax, 0xfffffffe
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xc8], 0
jl 0x6343d6
call fcn.00635170
push eax
mov eax, dword [ebp - 0xc8]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x6343f4
call fcn.00635170
mov edx, dword [ebp - 0xc8]
neg edx
add eax, edx
dec eax
push eax
call fcn.00635170
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0xcc], 0
jne 0x63440c
add dword [ebp - 0x3d4], 0xffffffd0
jmp 0x634469
mov eax, dword [ebp - 0xcc]
shl eax, 2
add dword [ebp - 0x3c8], eax
mov ecx, dword [ebp - 0x3c8]
mov eax, dword [ecx]
mov dword [ebp - 0x3d0], eax
call fcn.00635170
mov edx, eax
shl edx, 3
lea edx, [edx + edx*2]
add edx, dword [ebp - 0x3d0]
mov dword [ebp - 0x3cc], edx
call fcn.00635170
imul dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xc8]
sub ecx, eax
mov eax, ecx
shl eax, 3
lea eax, [eax + eax*2]
add eax, dword [ebp - 0x3d0]
mov dword [ebp - 0x3d4], eax
mov edx, dword [ebp - 0x3d4]
mov esi, ebx
mov dword [esp + 8], edx
mov ecx, dword [ebp - 0x3d0]
mov dword [esp + 0xc], ecx
mov eax, dword [ebp - 0x3cc]
mov dword [esp + 0x10], eax
mov edx, dword [ebp - 0x3c8]
mov dword [esp + 0x14], edx
mov dword [ebp - 0xb8], edi
mov ecx, dword [esi + 8]
add esp, 0xffffffe8
mov dword [ebp - 0x38c], ecx
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x388], eax
mov edx, dword [esi + 0x10]
mov dword [ebp - 0x384], edx
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x380], ecx
mov eax, dword [ebp - 0x38c]
mov dword [ebp - 0x3a4], eax
mov edx, dword [ebp - 0x388]
mov dword [ebp - 0x3a0], edx
mov ecx, dword [ebp - 0x384]
mov dword [ebp - 0x39c], ecx
mov ecx, 0x18
mov eax, dword [ebp - 0x380]
mov dword [ebp - 0x398], eax
mov eax, dword [ebp - 0x3a4]
sub eax, dword [ebp - 0x3a0]
cdq
idiv ecx
add eax, dword [ebp - 0xb8]
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0
jl 0x63452e
call fcn.00635170
push eax
mov eax, dword [ebp - 0xbc]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x63454c
call fcn.00635170
mov edx, dword [ebp - 0xbc]
neg edx
add eax, edx
dec eax
push eax
call fcn.00635170
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0xc0], eax
cmp dword [ebp - 0xc0], 0
jne 0x63456f
mov eax, dword [ebp - 0xb8]
shl eax, 3
lea eax, [eax + eax*2]
add dword [ebp - 0x3a4], eax
jmp 0x6345cc
mov ecx, dword [ebp - 0xc0]
shl ecx, 2
add dword [ebp - 0x398], ecx
mov eax, dword [ebp - 0x398]
mov edx, dword [eax]
mov dword [ebp - 0x3a0], edx
call fcn.00635170
mov ecx, eax
shl ecx, 3
lea ecx, [ecx + ecx*2]
add ecx, dword [ebp - 0x3a0]
mov dword [ebp - 0x39c], ecx
call fcn.00635170
imul dword [ebp - 0xc0]
mov edx, dword [ebp - 0xbc]
sub edx, eax
mov eax, edx
shl eax, 3
lea eax, [eax + eax*2]
add eax, dword [ebp - 0x3a0]
mov dword [ebp - 0x3a4], eax
mov ecx, dword [ebp - 0x3a4]
mov dword [esp + 8], ecx
mov eax, dword [ebp - 0x3a0]
mov dword [esp + 0xc], eax
mov edx, dword [ebp - 0x39c]
mov dword [esp + 0x10], edx
mov ecx, dword [ebp - 0x398]
mov dword [esp + 0x14], ecx
lea eax, [ebp - 0x37c]
push eax
call fcn.00632d4c
add esp, 0x4c
mov dword [ebp - 0xdc], edi
mov esi, ebx
mov edx, dword [esi + 8]
mov dword [ebp - 0x41c], edx
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x418], ecx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x414], eax
mov edx, dword [esi + 0x14]
mov dword [ebp - 0x410], edx
mov ecx, dword [ebp - 0x41c]
mov dword [ebp - 0x434], ecx
mov eax, dword [ebp - 0x418]
mov dword [ebp - 0x430], eax
mov edx, dword [ebp - 0x414]
mov dword [ebp - 0x42c], edx
mov ecx, dword [ebp - 0x410]
mov dword [ebp - 0x428], ecx
mov eax, dword [ebp - 0x434]
sub eax, dword [ebp - 0x430]
mov ecx, 0x18
cdq
idiv ecx
add eax, dword [ebp - 0xdc]
mov dword [ebp - 0xe0], eax
cmp dword [ebp - 0xe0], 0
jl 0x63469d
call fcn.00635170
push eax
mov eax, dword [ebp - 0xe0]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x6346bb
call fcn.00635170
mov edx, dword [ebp - 0xe0]
neg edx
add eax, edx
dec eax
push eax
call fcn.00635170
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0xe4], 0
jne 0x6346de
mov eax, dword [ebp - 0xdc]
shl eax, 3
lea eax, [eax + eax*2]
add dword [ebp - 0x434], eax
jmp 0x63473b
mov ecx, dword [ebp - 0xe4]
shl ecx, 2
add dword [ebp - 0x428], ecx
mov eax, dword [ebp - 0x428]
mov edx, dword [eax]
mov dword [ebp - 0x430], edx
call fcn.00635170
mov ecx, eax
shl ecx, 3
lea ecx, [ecx + ecx*2]
add ecx, dword [ebp - 0x430]
mov dword [ebp - 0x42c], ecx
call fcn.00635170
imul dword [ebp - 0xe4]
mov edx, dword [ebp - 0xe0]
sub edx, eax
mov eax, edx
shl eax, 3
lea eax, [eax + eax*2]
add eax, dword [ebp - 0x430]
mov dword [ebp - 0x434], eax
mov ecx, dword [ebp - 0x434]
mov dword [ebp - 0x44c], ecx
mov eax, dword [ebp - 0x430]
mov dword [ebp - 0x448], eax
mov edx, dword [ebp - 0x42c]
mov dword [ebp - 0x444], edx
mov ecx, dword [ebp - 0x428]
mov dword [ebp - 0x440], ecx
mov ecx, 6
mov eax, dword [ebp - 0x44c]
mov edx, dword [ebp + 0x28]
push esi
push edi
mov edi, eax
mov esi, edx
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0xec], ebx
mov eax, dword [ebp - 0xec]
mov edx, dword [eax + 8]
mov dword [ebp - 0x464], edx
mov ecx, dword [ebp - 0xec]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x460], eax
mov edx, dword [ebp - 0xec]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x45c], ecx
mov eax, dword [ebp - 0xec]
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x458], edx
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x464]
mov dword [ebp - 0x47c], ecx
mov eax, dword [ebp - 0x460]
mov dword [ebp - 0x478], eax
mov edx, dword [ebp - 0x45c]
mov dword [ebp - 0x474], edx
mov ecx, dword [ebp - 0x458]
mov dword [ebp - 0x470], ecx
mov ecx, 0x18
mov eax, dword [ebp - 0x47c]
sub eax, dword [ebp - 0x478]
cdq
idiv ecx
add eax, dword [ebp - 0xe8]
mov dword [ebp - 0xf0], eax
cmp dword [ebp - 0xf0], 0
jl 0x63483c
call fcn.00635170
push eax
mov eax, dword [ebp - 0xf0]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x63485a
call fcn.00635170
mov edx, dword [ebp - 0xf0]
neg edx
add eax, edx
dec eax
push eax
call fcn.00635170
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0xf4], eax
cmp dword [ebp - 0xf4], 0
jne 0x63487d
mov eax, dword [ebp - 0xe8]
shl eax, 3
lea eax, [eax + eax*2]
add dword [ebp - 0x47c], eax
jmp 0x6348da
mov ecx, dword [ebp - 0xf4]
shl ecx, 2
add dword [ebp - 0x470], ecx
mov eax, dword [ebp - 0x470]
mov edx, dword [eax]
mov dword [ebp - 0x478], edx
call fcn.00635170
mov ecx, eax
shl ecx, 3
lea ecx, [ecx + ecx*2]
add ecx, dword [ebp - 0x478]
mov dword [ebp - 0x474], ecx
call fcn.00635170
imul dword [ebp - 0xf4]
mov edx, dword [ebp - 0xf0]
sub edx, eax
mov eax, edx
shl eax, 3
lea eax, [eax + eax*2]
add eax, dword [ebp - 0x478]
mov dword [ebp - 0x47c], eax
mov ecx, dword [ebp - 0x47c]
mov dword [esi + 8], ecx
mov eax, dword [ebp - 0x478]
mov dword [esi + 0xc], eax
mov edx, dword [ebp - 0x474]
mov dword [esi + 0x10], edx
mov ecx, dword [ebp - 0x470]
mov dword [esi + 0x14], ecx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x34]
mov dword fs:[0], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret