Function at 0x63acac
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffb7c
mov eax, 0x50d923
xor edx, edx
push ebx
push esi
push edi
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x2c], 0x6feec0
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 0x63ada2
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebp + 0x1c]
je 0x63ad36
mov edx, dword [ebp - 0x104]
cmp edx, dword [ebp - 0x100]
jne 0x63ad9e
mov ecx, dword [ebp + 0x24]
cmp ecx, dword [ebp - 0xf8]
jne 0x63ad54
mov eax, dword [ebp + 0x18]
sub eax, dword [ebp - 0x104]
mov ecx, 0x18
cdq
idiv ecx
jmp 0x63ad9a
call fcn.0063caf4
mov ecx, eax
mov eax, dword [ebp + 0x24]
sub eax, dword [ebp - 0xf8]
test eax, eax
jns 0x63ad6b
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 0x63ada2
xor edx, edx
jmp 0x63ada7
mov edx, 1
test dl, dl
je 0x63aeda
mov ecx, dword [ebp + 0x28]
mov dword [ebp - 0x38], ecx
cmp dword [ebx + 0x30], 0
sete al
and eax, 1
test al, al
jne 0x63ae3d
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 0x63ae44
push ebx
call fcn.0063c2b8
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 0x63ae97
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 0x63c28f
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 0x63af92
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [ebp + 0x1c]
je 0x63af26
mov eax, dword [ebp - 0x14c]
cmp eax, dword [ebp - 0x148]
jne 0x63af8e
mov edx, dword [ebp + 0x24]
cmp edx, dword [ebp - 0x140]
jne 0x63af44
mov eax, dword [ebp + 0x18]
sub eax, dword [ebp - 0x14c]
mov ecx, 0x18
cdq
idiv ecx
jmp 0x63af8a
call fcn.0063caf4
mov ecx, eax
mov eax, dword [ebp + 0x24]
sub eax, dword [ebp - 0x140]
test eax, eax
jns 0x63af5b
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 0x63af92
xor edx, edx
jmp 0x63af97
mov edx, 1
test dl, dl
je 0x63b1e5
mov ecx, dword [ebp + 0x28]
mov dword [ebp - 0x4c], ecx
cmp dword [ebx + 0x30], 0
sete al
and eax, 1
test al, al
jne 0x63b037
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 0x63b03e
push ebx
call fcn.0063c6ec
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 0x63b08e
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 0x63b12e
call fcn.0063caf4
push eax
mov eax, dword [ebp - 0x60]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x63b149
call fcn.0063caf4
mov edx, dword [ebp - 0x60]
neg edx
add eax, edx
dec eax
push eax
call fcn.0063caf4
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 0
jne 0x63b15b
add dword [ebp - 0x1ac], 0xffffffe8
jmp 0x63b1af
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.0063caf4
mov edx, eax
shl edx, 3
lea edx, [edx + edx*2]
add edx, dword [ebp - 0x1a8]
mov dword [ebp - 0x1a4], edx
call fcn.0063caf4
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 0x63c28f
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 0x63b22b
mov eax, dword [ebp + 0x18]
sub eax, dword [ebp - 0x1c4]
mov ecx, 0x18
cdq
idiv ecx
mov edi, eax
jmp 0x63b26f
call fcn.0063caf4
mov edi, eax
mov eax, dword [ebp + 0x24]
sub eax, dword [ebp - 0x1b8]
test eax, eax
jns 0x63b242
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 0x63b916
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 0x63b340
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 0x63b347
push ebx
call fcn.0063c2b8
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 0x63b39a
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 0x63b44f
call fcn.0063caf4
push eax
mov eax, dword [ebp - 0xa4]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x63b46d
call fcn.0063caf4
mov edx, dword [ebp - 0xa4]
neg edx
add eax, edx
dec eax
push eax
call fcn.0063caf4
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0xa8], 0
jne 0x63b485
add dword [ebp - 0x2e4], 0x18
jmp 0x63b4e2
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.0063caf4
mov edx, eax
shl edx, 3
lea edx, [edx + edx*2]
add edx, dword [ebp - 0x2e0]
mov dword [ebp - 0x2dc], edx
call fcn.0063caf4
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 0x63b5c3
call fcn.0063caf4
push eax
mov eax, dword [ebp - 0x90]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x63b5e1
call fcn.0063caf4
mov edx, dword [ebp - 0x90]
neg edx
add eax, edx
dec eax
push eax
call fcn.0063caf4
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0
jne 0x63b604
mov eax, dword [ebp - 0x88]
shl eax, 3
lea eax, [eax + eax*2]
add dword [ebp - 0x284], eax
jmp 0x63b661
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.0063caf4
mov ecx, eax
shl ecx, 3
lea ecx, [ecx + ecx*2]
add ecx, dword [ebp - 0x280]
mov dword [ebp - 0x27c], ecx
call fcn.0063caf4
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 0x63b6fa
call fcn.0063caf4
push eax
mov eax, dword [ebp - 0x98]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x63b718
call fcn.0063caf4
mov edx, dword [ebp - 0x98]
neg edx
add eax, edx
dec eax
push eax
call fcn.0063caf4
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0
jne 0x63b730
add dword [ebp - 0x2b4], 0x18
jmp 0x63b78d
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.0063caf4
mov edx, eax
shl edx, 3
lea edx, [edx + edx*2]
add edx, dword [ebp - 0x2b0]
mov dword [ebp - 0x2ac], edx
call fcn.0063caf4
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 0x63b84d
call fcn.0063caf4
push eax
mov eax, dword [ebp - 0x80]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x63b868
call fcn.0063caf4
mov edx, dword [ebp - 0x80]
neg edx
add eax, edx
dec eax
push eax
call fcn.0063caf4
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0
jne 0x63b880
add dword [ebp - 0x254], 0x30
jmp 0x63b8da
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.0063caf4
mov edx, eax
shl edx, 3
lea edx, [edx + edx*2]
add edx, dword [ebp - 0x250]
mov dword [ebp - 0x24c], edx
call fcn.0063caf4
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.0063a8a8
add esp, 0x4c
jmp 0x63bf87
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 0x63b999
call fcn.0063caf4
push eax
mov eax, esi
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x63b9b3
call fcn.0063caf4
mov edx, esi
neg edx
add eax, edx
dec eax
push eax
call fcn.0063caf4
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 0
jne 0x63b9cb
add dword [ebp - 0x314], 0xffffffe8
jmp 0x63ba22
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.0063caf4
mov edx, eax
shl edx, 3
lea edx, [edx + edx*2]
add edx, dword [ebp - 0x310]
mov dword [ebp - 0x30c], edx
call fcn.0063caf4
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 0x63bace
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 0x63bad5
push ebx
call fcn.0063c6ec
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 0x63bb34
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 0x63bbec
call fcn.0063caf4
push eax
mov eax, dword [ebp - 0xd4]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x63bc0a
call fcn.0063caf4
mov edx, dword [ebp - 0xd4]
neg edx
add eax, edx
dec eax
push eax
call fcn.0063caf4
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0xd8], eax
cmp dword [ebp - 0xd8], 0
jne 0x63bc22
add dword [ebp - 0x404], 0xffffffe8
jmp 0x63bc7f
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.0063caf4
mov edx, eax
shl edx, 3
lea edx, [edx + edx*2]
add edx, dword [ebp - 0x400]
mov dword [ebp - 0x3fc], edx
call fcn.0063caf4
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 0x63bd5a
call fcn.0063caf4
push eax
mov eax, dword [ebp - 0xc8]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x63bd78
call fcn.0063caf4
mov edx, dword [ebp - 0xc8]
neg edx
add eax, edx
dec eax
push eax
call fcn.0063caf4
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0xcc], 0
jne 0x63bd90
add dword [ebp - 0x3d4], 0xffffffd0
jmp 0x63bded
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.0063caf4
mov edx, eax
shl edx, 3
lea edx, [edx + edx*2]
add edx, dword [ebp - 0x3d0]
mov dword [ebp - 0x3cc], edx
call fcn.0063caf4
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 0x63beb2
call fcn.0063caf4
push eax
mov eax, dword [ebp - 0xbc]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x63bed0
call fcn.0063caf4
mov edx, dword [ebp - 0xbc]
neg edx
add eax, edx
dec eax
push eax
call fcn.0063caf4
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0xc0], eax
cmp dword [ebp - 0xc0], 0
jne 0x63bef3
mov eax, dword [ebp - 0xb8]
shl eax, 3
lea eax, [eax + eax*2]
add dword [ebp - 0x3a4], eax
jmp 0x63bf50
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.0063caf4
mov ecx, eax
shl ecx, 3
lea ecx, [ecx + ecx*2]
add ecx, dword [ebp - 0x3a0]
mov dword [ebp - 0x39c], ecx
call fcn.0063caf4
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.0063a6d0
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 0x63c021
call fcn.0063caf4
push eax
mov eax, dword [ebp - 0xe0]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x63c03f
call fcn.0063caf4
mov edx, dword [ebp - 0xe0]
neg edx
add eax, edx
dec eax
push eax
call fcn.0063caf4
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0xe4], 0
jne 0x63c062
mov eax, dword [ebp - 0xdc]
shl eax, 3
lea eax, [eax + eax*2]
add dword [ebp - 0x434], eax
jmp 0x63c0bf
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.0063caf4
mov ecx, eax
shl ecx, 3
lea ecx, [ecx + ecx*2]
add ecx, dword [ebp - 0x430]
mov dword [ebp - 0x42c], ecx
call fcn.0063caf4
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 0x63c1c0
call fcn.0063caf4
push eax
mov eax, dword [ebp - 0xf0]
pop edx
mov ecx, edx
xor edx, edx
div ecx
jmp 0x63c1de
call fcn.0063caf4
mov edx, dword [ebp - 0xf0]
neg edx
add eax, edx
dec eax
push eax
call fcn.0063caf4
pop ecx
xor edx, edx
xchg ecx, eax
div ecx
neg eax
mov dword [ebp - 0xf4], eax
cmp dword [ebp - 0xf4], 0
jne 0x63c201
mov eax, dword [ebp - 0xe8]
shl eax, 3
lea eax, [eax + eax*2]
add dword [ebp - 0x47c], eax
jmp 0x63c25e
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.0063caf4
mov ecx, eax
shl ecx, 3
lea ecx, [ecx + ecx*2]
add ecx, dword [ebp - 0x478]
mov dword [ebp - 0x474], ecx
call fcn.0063caf4
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