Function at 0x524c50
Capabilities:
Decompress data using quicklz

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1d8
push esi
push edi
mov eax, dword [ebp + 8]
mov dword [eax + 0x1c], 0
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x18], 0
mov edx, dword [ebp + 8]
cmp dword [edx + 0x34], 0
jne 0x524c8d
lea eax, [ebp - 0x4c]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00524b38
add esp, 8
mov dword [ebp - 0x38], eax
jmp 0x524c9f
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x20]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x24]
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x44], ecx
cmp dword [ebp - 0x44], 2
jae 0x524cc5
mov edx, dword [ebp + 8]
mov dword [edx + 0x90], 0xffffffff
mov eax, 1
jmp 0x526b37
cmp dword [ebp - 0x44], 0x111
jbe 0x524cd5
mov dword [ebp - 0x44], 0x111
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp + 8]
call dword [edx + 0xc]
add esp, 4
sub eax, 1
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x3c], 0
jmp 0x524d03
mov eax, dword [ebp - 0x3c]
add eax, 1
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 4
jae 0x524dbe
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp + 8]
mov edx, dword [eax + edx*4 + 0x38]
mov dword [ebp + ecx*4 - 0x28], edx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp + eax*4 - 0x28]
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x30]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [ecx]
cmp eax, edx
jne 0x524d51
mov eax, dword [ebp - 0x30]
xor ecx, ecx
mov cl, byte [eax + 1]
mov edx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [edx + 1]
cmp ecx, eax
je 0x524d5e
mov ecx, dword [ebp - 0x3c]
mov dword [ebp + ecx*4 - 0x18], 0
jmp 0x524cfa
mov dword [ebp - 0x60], 2
jmp 0x524d70
mov edx, dword [ebp - 0x60]
add edx, 1
mov dword [ebp - 0x60], edx
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x44]
jae 0x524d92
mov ecx, dword [ebp - 0x30]
add ecx, dword [ebp - 0x60]
xor edx, edx
mov dl, byte [ecx]
mov eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0x60]
xor ecx, ecx
mov cl, byte [eax]
cmp edx, ecx
jne 0x524d92
jmp 0x524d67
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x60]
mov dword [ebp + edx*4 - 0x18], eax
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x60]
cmp edx, dword [ebp + ecx*4 - 0x18]
jbe 0x524dae
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x60], 0x111
jne 0x524db9
jmp 0x524dbe
jmp 0x524cfa
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + ecx*4 - 0x18]
cmp eax, dword [edx + 0x30]
jb 0x524e14
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x58]
mov dword [ecx + 0x90], edx
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp + eax*4 - 0x18]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x34]
mov ecx, dword [ebp - 0x64]
lea edx, [eax + ecx - 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x34], edx
mov ecx, dword [ebp - 0x64]
sub ecx, 1
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp + 8]
call dword [ecx + 0x14]
add esp, 8
mov eax, dword [ebp - 0x64]
jmp 0x526b37
mov edx, dword [ebp + 8]
add edx, 0x960
mov dword [ebp - 8], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x38]
cmp ecx, dword [eax + 0x30]
jb 0x524e72
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + edx*4 - 4]
add ecx, 4
mov edx, dword [ebp + 8]
mov dword [edx + 0x90], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov edx, dword [ebp - 0x38]
lea eax, [ecx + edx - 1]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x34], eax
mov edx, dword [ebp - 0x38]
sub edx, 1
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp + 8]
call dword [edx + 0x14]
add esp, 8
mov eax, dword [ebp - 0x38]
jmp 0x526b37
mov eax, dword [ebp - 0x30]
mov cl, byte [eax]
mov byte [ebp - 0x34], cl
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 0x28]
mov al, byte [edx]
mov byte [ebp - 0x48], al
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp + ecx*4 - 0x18]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x38]
ja 0x524e9d
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 2
jae 0x524ecf
mov edx, dword [ebp - 0x34]
and edx, 0xff
mov eax, dword [ebp - 0x48]
and eax, 0xff
cmp edx, eax
je 0x524ecf
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x90], 0xffffffff
mov eax, 1
jmp 0x526b37
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov cx, word [eax + 0x2c]
mov word [edx + 0xbcbc], cx
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
and eax, dword [edx + 0x4c]
mov dword [ebp - 0x54], eax
mov edx, dword [ebp + 0xc]
shl edx, 8
mov eax, dword [ebp - 0x30]
xor ecx, ecx
mov cl, byte [eax - 1]
add edx, ecx
mov eax, dword [ebp + 8]
and edx, dword [eax + 0x48]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x94]
shl edx, cl
imul edx, edx, 3
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x50]
lea edx, [ecx + edx*2]
mov dword [ebp - 0x68], edx
mov eax, dword [ebp + 8]
cmp dword [eax + 0x2c], 7
jb 0x524f56
mov ecx, dword [ebp + 8]
add ecx, 0x760
push ecx
mov edx, dword [ebp - 0x48]
and edx, 0xff
push edx
mov eax, dword [ebp - 0x34]
and eax, 0xff
push eax
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.00526b98
add esp, 0x10
mov dword [ebp - 0x1c8], eax
jmp 0x524f7b
mov edx, dword [ebp + 8]
add edx, 0x760
push edx
mov eax, dword [ebp - 0x34]
and eax, 0xff
push eax
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.00526b3d
add esp, 0xc
mov dword [ebp - 0x1c8], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x2c]
shl eax, 5
mov ecx, dword [ebp + 8]
lea edx, [ecx + eax + 0x1eb0]
mov eax, dword [ebp - 0x54]
xor ecx, ecx
mov cx, word [edx + eax*2]
sar ecx, 4
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx*4 + 0x760]
add eax, dword [ebp - 0x1c8]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xbcd8], eax
mov edx, dword [ebp + 8]
mov dword [edx + 0xbce4], 0xffffffff
mov eax, dword [ebp + 8]
mov word [eax + 0xbcde], 0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x2c]
shl edx, 5
mov eax, dword [ebp + 8]
lea ecx, [eax + edx + 0x1eb0]
mov edx, dword [ebp - 0x54]
xor eax, eax
mov ax, word [ecx + edx*2]
xor eax, 0x7ff
sar eax, 4
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + eax*4 + 0x760]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x2c]
mov edx, dword [ebp + 8]
xor eax, eax
mov ax, word [edx + ecx*2 + 0x1e50]
xor eax, 0x7ff
sar eax, 4
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x40]
add edx, dword [ecx + eax*4 + 0x760]
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x48]
and eax, 0xff
mov ecx, dword [ebp - 0x34]
and ecx, 0xff
cmp eax, ecx
jne 0x5250f1
cmp dword [ebp - 0x18], 0
jne 0x5250f1
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x2c]
mov ecx, dword [ebp + 8]
xor edx, edx
mov dx, word [ecx + eax*2 + 0x1e68]
sar edx, 4
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x2c]
shl ecx, 5
mov eax, dword [ebp + 8]
lea ecx, [eax + ecx + 0x2030]
mov eax, dword [ebp - 0x54]
xor esi, esi
mov si, word [ecx + eax*2]
sar esi, 4
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + edx*4 + 0x760]
mov eax, dword [ebp + 8]
add edx, dword [eax + esi*4 + 0x760]
mov ecx, dword [ebp - 0x50]
add ecx, edx
mov dword [ebp - 0x6c], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x6c]
cmp eax, dword [edx + 0xbcd8]
jae 0x5250cf
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x6c]
mov dword [ecx + 0xbcd8], edx
mov eax, dword [ebp + 8]
mov dword [eax + 0xbce4], 0
mov ecx, dword [ebp + 8]
mov word [ecx + 0xbcde], 0
cmp dword [ebp - 4], 2
jae 0x5250f1
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xbce4]
mov dword [edx + 0x90], ecx
mov eax, 1
jmp 0x526b37
mov edx, dword [ebp + 8]
mov dword [edx + 0xbce0], 1
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
mov dword [eax + 0xbcc8], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x24]
mov dword [edx + 0xbccc], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x20]
mov dword [ecx + 0xbcd0], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1c]
mov dword [eax + 0xbcd4], ecx
mov dword [ebp - 0x3c], 0
jmp 0x525140
mov edx, dword [ebp - 0x3c]
add edx, 1
mov dword [ebp - 0x3c], edx
cmp dword [ebp - 0x3c], 4
jae 0x5251f3
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp + eax*4 - 0x18]
mov dword [ebp - 0x70], ecx
cmp dword [ebp - 0x70], 2
jae 0x52515c
jmp 0x525137
mov edx, dword [ebp - 0x54]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x2c]
push ecx
mov edx, dword [ebp - 0x3c]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00526c23
add esp, 0x10
mov ecx, dword [ebp - 0x50]
add ecx, eax
mov dword [ebp - 0x74], ecx
mov edx, dword [ebp - 0x54]
imul edx, edx, 0x440
mov eax, dword [ebp + 8]
lea ecx, [eax + edx + 0x78b8]
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x74]
add eax, dword [ecx + edx*4 - 8]
mov dword [ebp - 0x7c], eax
mov ecx, dword [ebp - 0x70]
shl ecx, 5
mov edx, dword [ebp + 8]
lea eax, [edx + ecx + 0xbcb8]
mov dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x7c]
cmp edx, dword [ecx]
jae 0x5251df
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x7c]
mov dword [eax], ecx
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x70]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x3c]
mov dword [ecx + 0xc], edx
mov eax, dword [ebp - 0x78]
mov word [eax + 6], 0
mov ecx, dword [ebp - 0x70]
sub ecx, 1
mov dword [ebp - 0x70], ecx
cmp dword [ebp - 0x70], 2
jae 0x52517f
jmp 0x525137
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x80], edx
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0x38]
ja 0x52542d
mov dword [ebp - 0x84], 0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x2c]
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cx, word [eax + edx*2 + 0x1e50]
sar ecx, 4
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
add eax, dword [edx + ecx*4 + 0x760]
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x80], 2
jae 0x52524a
mov dword [ebp - 0x80], 2
jmp 0x52526c
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x80]
cmp eax, dword [edx + ecx*4]
jbe 0x52526c
mov ecx, dword [ebp - 0x84]
add ecx, 2
mov dword [ebp - 0x84], ecx
jmp 0x52524a
jmp 0x525277
mov edx, dword [ebp - 0x80]
add edx, 1
mov dword [ebp - 0x80], edx
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + eax*4 + 4]
mov dword [ebp - 0x8c], edx
mov eax, dword [ebp - 0x54]
imul eax, eax, 0x440
mov ecx, dword [ebp + 8]
lea edx, [ecx + eax + 0x34b4]
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x88]
add ecx, dword [edx + eax*4 - 8]
mov dword [ebp - 0x90], ecx
cmp dword [ebp - 0x80], 5
jae 0x5252c4
mov edx, dword [ebp - 0x80]
sub edx, 2
mov dword [ebp - 0x1cc], edx
jmp 0x5252ce
mov dword [ebp - 0x1cc], 3
mov eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x8c], 0x80
jae 0x525316
mov ecx, dword [ebp - 0x94]
shl ecx, 9
mov edx, dword [ebp + 8]
lea eax, [edx + ecx + 0x1630]
mov ecx, dword [ebp - 0x8c]
and ecx, 0x7f
mov edx, dword [ebp - 0x90]
add edx, dword [eax + ecx*4]
mov dword [ebp - 0x90], edx
jmp 0x52539d
cmp dword [ebp - 0x8c], 0x20000
sbb eax, eax
and al, 0xf6
add eax, 0x10
mov dword [ebp - 0xa0], eax
mov edx, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0xa0]
shr edx, cl
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax + edx + 0x2cb0]
mov edx, dword [ebp - 0xa0]
lea eax, [ecx + edx*2]
mov dword [ebp - 0x9c], eax
mov ecx, dword [ebp - 0x8c]
and ecx, 0xf
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x90]
add eax, dword [edx + ecx*4 + 0x11f0]
mov dword [ebp - 0x90], eax
mov ecx, dword [ebp - 0x94]
shl ecx, 8
mov edx, dword [ebp + 8]
lea eax, [edx + ecx + 0x1230]
mov ecx, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x90]
add edx, dword [eax + ecx*4]
mov dword [ebp - 0x90], edx
mov eax, dword [ebp - 0x80]
shl eax, 5
mov ecx, dword [ebp + 8]
lea edx, [ecx + eax + 0xbcb8]
mov dword [ebp - 0x98], edx
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x90]
cmp ecx, dword [eax]
jae 0x5253fb
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x90]
mov dword [edx], eax
mov ecx, dword [ebp - 0x98]
mov edx, dword [ebp - 0x80]
mov dword [ecx + 8], edx
mov eax, dword [ebp - 0x8c]
add eax, 4
mov ecx, dword [ebp - 0x98]
mov dword [ecx + 0xc], eax
mov edx, dword [ebp - 0x98]
mov word [edx + 6], 0
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x80]
cmp edx, dword [ecx + eax*4]
jne 0x525428
mov eax, dword [ebp - 0x84]
add eax, 2
mov dword [ebp - 0x84], eax
mov ecx, dword [ebp - 0x84]
cmp ecx, dword [ebp - 0x4c]
jne 0x525428
jmp 0x52542d
jmp 0x52526e
mov dword [ebp - 0x2c], 0
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 4]
jne 0x52544a
jmp 0x526b04
cmp dword [ebp - 0x2c], 0x7c0
jb 0x52552d
mov ecx, dword [ebp - 0x2c]
shl ecx, 5
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx + 0xbcb8]
mov dword [ebp - 0xec], eax
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0xe8], ecx
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0xf0], edx
jmp 0x525493
mov eax, dword [ebp - 0xf0]
add eax, 1
mov dword [ebp - 0xf0], eax
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 4]
ja 0x5254df
mov edx, dword [ebp - 0xf0]
shl edx, 5
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx + 0xbcb8]
mov dword [ebp - 0xf4], ecx
mov edx, dword [ebp - 0xec]
cmp edx, dword [ebp - 0xf4]
jb 0x5254dd
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0xec], eax
mov ecx, dword [ebp - 0xf0]
mov dword [ebp - 0xe8], ecx
jmp 0x525484
mov edx, dword [ebp - 0xe8]
sub edx, dword [ebp - 0x2c]
mov dword [ebp - 0xf8], edx
cmp dword [ebp - 0xf8], 0
je 0x52551f
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
add ecx, dword [ebp - 0xf8]
mov edx, dword [ebp + 8]
mov dword [edx + 0x34], ecx
mov eax, dword [ebp - 0xf8]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp + 8]
call dword [eax + 0x14]
add esp, 8
mov ecx, dword [ebp - 0xe8]
mov dword [ebp - 0x2c], ecx
jmp 0x526b04
lea edx, [ebp - 0xd8]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00524b38
add esp, 8
mov dword [ebp - 0xb0], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0xb0]
cmp edx, dword [ecx + 0x30]
jb 0x525571
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xd8]
mov dword [eax + 0x24], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0xb0]
mov dword [edx + 0x20], eax
jmp 0x526b04
mov ecx, dword [ebp - 0x2c]
shl ecx, 5
mov edx, dword [ebp + 8]
lea eax, [edx + ecx + 0xbcb8]
mov dword [ebp - 0xa8], eax
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0x2c]
sub eax, dword [edx + 8]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0xa8]
cmp dword [ecx + 8], 1
jne 0x525605
mov edx, dword [ebp - 0xd0]
shl edx, 5
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cx, word [eax + edx + 0xbcbc]
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0xa8]
cmp dword [edx + 0xc], 0
jne 0x5255ec
mov eax, dword [ebp - 0xb8]
xor ecx, ecx
mov cl, byte [eax + 0x728638]
mov dword [ebp - 0xb8], ecx
jmp 0x525600
mov edx, dword [ebp - 0xb8]
xor eax, eax
mov al, byte [edx + 0x728614]
mov dword [ebp - 0xb8], eax
jmp 0x5257d0
mov ecx, dword [ebp - 0xa8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0xa8]
xor ecx, ecx
mov cx, word [eax + 6]
test ecx, ecx
je 0x52566f
mov edx, dword [ebp - 0xa8]
xor eax, eax
mov ax, word [edx + 6]
mov ecx, dword [ebp - 0xd0]
sub ecx, eax
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xb8], 8
mov edx, dword [ebp - 0xa8]
xor eax, eax
mov ax, word [edx + 6]
cmp eax, 1
jne 0x52566d
cmp dword [ebp - 0x100], 4
sbb ecx, ecx
neg ecx
add ecx, 7
mov dword [ebp - 0xb8], ecx
jmp 0x5256be
mov edx, dword [ebp - 0xd0]
shl edx, 5
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cx, word [eax + edx + 0xbcbc]
mov dword [ebp - 0xb8], ecx
cmp dword [ebp - 0x100], 4
jae 0x5256aa
mov edx, dword [ebp - 0xb8]
xor eax, eax
mov al, byte [edx + 0x72862c]
mov dword [ebp - 0xb8], eax
jmp 0x5256be
mov ecx, dword [ebp - 0xb8]
xor edx, edx
mov dl, byte [ecx + str._a_a_a_a_a_a_a_n_n_n_n_n_b_b_b_b_b_b_b_v_v_v_v_v_t_t_t_t_t_t_t_v_v_v_v_v]
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0xd0]
shl eax, 5
mov ecx, dword [ebp + 8]
lea edx, [ecx + eax + 0xbcb8]
mov dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0xfc]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x104], ecx
cmp dword [ebp - 0x100], 4
jae 0x5257a3
cmp dword [ebp - 0x100], 0
jne 0x52572b
mov edx, dword [ebp - 0x104]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0xfc]
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0xfc]
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0xfc]
mov edx, dword [ecx + 0x1c]
mov dword [ebp - 0x1c], edx
jmp 0x5257a1
mov eax, dword [ebp - 0x104]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0xfc]
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0x104], edx
cmp dword [ebp - 0x100], 1
jne 0x52576f
mov eax, dword [ebp - 0x104]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0xfc]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0xfc]
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x1c], ecx
jmp 0x5257a1
mov edx, dword [ebp - 0x104]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebp - 0xfc]
mov edx, dword [ecx + eax*4 + 0x10]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x100]
xor eax, 1
mov ecx, dword [ebp - 0xfc]
mov edx, dword [ecx + eax*4 + 0x10]
mov dword [ebp - 0x1c], edx
jmp 0x5257d0
mov eax, dword [ebp - 0x100]
sub eax, 3
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x104]
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0xfc]
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0xfc]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0xa8]
mov cx, word [ebp - 0xb8]
mov word [eax + 4], cx
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0x28]
mov dword [edx + 0x10], eax
mov ecx, dword [ebp - 0xa8]
mov edx, dword [ebp - 0x24]
mov dword [ecx + 0x14], edx
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0x18], ecx
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0x1c]
mov dword [edx + 0x1c], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp + 8]
call dword [eax + 0xc]
add esp, 4
sub eax, 1
mov dword [ebp - 0xa4], eax
mov ecx, dword [ebp - 0xa4]
mov dl, byte [ecx]
mov byte [ebp - 0xac], dl
mov eax, dword [ebp - 0xa4]
sub eax, dword [ebp - 0x28]
mov cl, byte [eax]
mov byte [ebp - 0xc8], cl
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
and eax, dword [edx + 0x4c]
mov dword [ebp - 0xe4], eax
mov ecx, dword [ebp - 0xa8]
mov edx, dword [ecx]
mov dword [ebp - 0x108], edx
mov eax, dword [ebp - 0xb8]
shl eax, 5
mov ecx, dword [ebp + 8]
lea edx, [ecx + eax + 0x1eb0]
mov eax, dword [ebp - 0xe4]
xor ecx, ecx
mov cx, word [edx + eax*2]
mov dword [ebp - 0x10c], ecx
mov edx, dword [ebp - 0x10c]
xor edx, 0x7ff
shr edx, 4
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x108]
add ecx, dword [eax + edx*4 + 0x760]
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebp - 0x10c]
shr edx, 4
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x108]
add ecx, dword [eax + edx*4 + 0x760]
mov dword [ebp - 0xe0], ecx
mov edx, dword [ebp - 0x2c]
add edx, 1
shl edx, 5
mov eax, dword [ebp + 8]
lea ecx, [eax + edx + 0xbcb8]
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0xcc], 0
mov edx, dword [ebp - 0xd4]
cmp dword [edx], 0x40000000
jae 0x52591a
mov eax, dword [ebp - 0xc8]
and eax, 0xff
mov ecx, dword [ebp - 0xac]
and ecx, 0xff
cmp eax, ecx
je 0x52592a
mov edx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xe0]
cmp eax, dword [edx]
jbe 0x525939
mov dword [ebp - 0xe0], 0
jmp 0x525a3e
mov edx, dword [ebp + 0xc]
shl edx, 8
mov eax, dword [ebp - 0xa4]
xor ecx, ecx
mov cl, byte [eax - 1]
add edx, ecx
mov eax, dword [ebp + 8]
and edx, dword [eax + 0x48]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x94]
shl edx, cl
imul edx, edx, 3
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x50]
lea edx, [ecx + edx*2]
mov dword [ebp - 0x110], edx
cmp dword [ebp - 0xb8], 7
jb 0x5259b2
mov eax, dword [ebp + 8]
add eax, 0x760
push eax
mov ecx, dword [ebp - 0xc8]
and ecx, 0xff
push ecx
mov edx, dword [ebp - 0xac]
and edx, 0xff
push edx
mov eax, dword [ebp - 0x110]
push eax
call fcn.00526b98
add esp, 0x10
mov dword [ebp - 0x1d0], eax
jmp 0x5259de
mov ecx, dword [ebp + 8]
add ecx, 0x760
push ecx
mov edx, dword [ebp - 0xac]
and edx, 0xff
push edx
mov eax, dword [ebp - 0x110]
push eax
call fcn.00526b3d
add esp, 0xc
mov dword [ebp - 0x1d0], eax
mov ecx, dword [ebp - 0xe0]
add ecx, dword [ebp - 0x1d0]
mov dword [ebp - 0xe0], ecx
mov edx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xe0]
cmp eax, dword [edx]
jae 0x525a3e
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xe0]
mov dword [ecx], edx
mov eax, dword [ebp - 0xd4]
mov dword [eax + 8], 1
mov ecx, dword [ebp - 0xd4]
mov dword [ecx + 0xc], 0xffffffff
mov edx, dword [ebp - 0xd4]
mov word [edx + 6], 0
mov dword [ebp - 0xcc], 1
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp + 8]
xor edx, edx
mov dx, word [ecx + eax*2 + 0x1e50]
xor edx, 0x7ff
sar edx, 4
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc0]
add ecx, dword [eax + edx*4 + 0x760]
mov dword [ebp - 0xdc], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x28]
mov dword [ebp - 0xbc], eax
mov ecx, 0x7ff
sub ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x114], ecx
mov edx, dword [ebp - 0xbc]
cmp edx, dword [ebp - 0x114]
jbe 0x525aa4
mov eax, dword [ebp - 0x114]
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xb8], 7
jae 0x525ba9
mov ecx, dword [ebp - 0xc8]
and ecx, 0xff
mov edx, dword [ebp - 0xac]
and edx, 0xff
cmp ecx, edx
jne 0x525ba9
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xdc]
cmp ecx, dword [eax]
jae 0x525ba9
mov edx, dword [ebp - 0xd4]
cmp dword [edx + 8], 2
jb 0x525b01
mov eax, dword [ebp - 0xd4]
cmp dword [eax + 0xc], 0
je 0x525ba9
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp + 8]
xor eax, eax
mov ax, word [edx + ecx*2 + 0x1e68]
sar eax, 4
mov ecx, dword [ebp - 0xb8]
shl ecx, 5
mov edx, dword [ebp + 8]
lea ecx, [edx + ecx + 0x2030]
mov edx, dword [ebp - 0xe4]
xor esi, esi
mov si, word [ecx + edx*2]
sar esi, 4
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + eax*4 + 0x760]
mov eax, dword [ebp + 8]
add edx, dword [eax + esi*4 + 0x760]
mov ecx, dword [ebp - 0xdc]
add ecx, edx
mov dword [ebp - 0x118], ecx
mov edx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0x118]
cmp eax, dword [edx]
jae 0x525ba9
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0x118]
mov dword [ecx], edx
mov eax, dword [ebp - 0xd4]
mov dword [eax + 8], 1
mov ecx, dword [ebp - 0xd4]
mov dword [ecx + 0xc], 0
mov edx, dword [ebp - 0xd4]
mov word [edx + 6], 0
mov dword [ebp - 0xcc], 0
cmp dword [ebp - 0xbc], 2
jae 0x525bb7
jmp 0x525434
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xbc]
cmp ecx, dword [eax + 0x30]
ja 0x525bd3
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0x1d4], edx
jmp 0x525bdf
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x1d4], ecx
mov edx, dword [ebp - 0x1d4]
mov dword [ebp - 0xc4], edx
cmp dword [ebp - 0xcc], 0
jne 0x525e8f
cmp dword [ebp - 0xe0], 0
je 0x525e8f
mov eax, dword [ebp - 0xc8]
and eax, 0xff
mov ecx, dword [ebp - 0xac]
and ecx, 0xff
cmp eax, ecx
je 0x525e8f
cmp dword [ebp - 0xbc], 2
jbe 0x525e8f
mov edx, dword [ebp - 0xa4]
sub edx, dword [ebp - 0x28]
mov dword [ebp - 0x11c], edx
mov eax, dword [ebp - 0xa4]
xor ecx, ecx
mov cl, byte [eax + 1]
mov edx, dword [ebp - 0x11c]
xor eax, eax
mov al, byte [edx + 1]
cmp ecx, eax
jne 0x525e8f
mov ecx, dword [ebp - 0xa4]
xor edx, edx
mov dl, byte [ecx + 2]
mov eax, dword [ebp - 0x11c]
xor ecx, ecx
mov cl, byte [eax + 2]
cmp edx, ecx
jne 0x525e8f
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x30]
add eax, 1
mov dword [ebp - 0x120], eax
mov ecx, dword [ebp - 0x120]
cmp ecx, dword [ebp - 0xbc]
jbe 0x525ca5
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0x120], edx
mov dword [ebp - 0x124], 3
jmp 0x525cc0
mov eax, dword [ebp - 0x124]
add eax, 1
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0x124]
cmp ecx, dword [ebp - 0x120]
jae 0x525cf4
mov edx, dword [ebp - 0xa4]
add edx, dword [ebp - 0x124]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp - 0x11c]
add ecx, dword [ebp - 0x124]
xor edx, edx
mov dl, byte [ecx]
cmp eax, edx
jne 0x525cf4
jmp 0x525cb1
mov eax, dword [ebp - 0xb8]
xor ecx, ecx
mov cl, byte [eax + 0x728614]
mov dword [ebp - 0x130], ecx
mov edx, dword [ebp + 0xc]
add edx, 1
mov eax, dword [ebp + 8]
and edx, dword [eax + 0x4c]
mov dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x130]
shl ecx, 5
mov edx, dword [ebp + 8]
lea eax, [edx + ecx + 0x1eb0]
mov ecx, dword [ebp - 0x128]
xor edx, edx
mov dx, word [eax + ecx*2]
xor edx, 0x7ff
sar edx, 4
mov eax, dword [ebp - 0x130]
shl eax, 5
mov ecx, dword [ebp + 8]
lea eax, [ecx + eax + 0x2030]
mov ecx, dword [ebp - 0x128]
xor esi, esi
mov si, word [eax + ecx*2]
xor esi, 0x7ff
sar esi, 4
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx*4 + 0x760]
mov edx, dword [ebp + 8]
add ecx, dword [edx + esi*4 + 0x760]
mov eax, dword [ebp - 0xe0]
add eax, ecx
mov ecx, dword [ebp - 0x130]
mov edx, dword [ebp + 8]
xor esi, esi
mov si, word [edx + ecx*2 + 0x1e50]
xor esi, 0x7ff
sar esi, 4
mov ecx, dword [ebp + 8]
add eax, dword [ecx + esi*4 + 0x760]
mov edx, dword [ebp - 0x130]
mov ecx, dword [ebp + 8]
xor esi, esi
mov si, word [ecx + edx*2 + 0x1e68]
sar esi, 4
mov edx, dword [ebp + 8]
add eax, dword [edx + esi*4 + 0x760]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x124]
mov dword [ebp - 0x134], eax
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 0x134]
jae 0x525df5
mov edx, dword [ebp - 0x134]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x124]
sub eax, 1
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0x128]
imul ecx, ecx, 0x440
mov edx, dword [ebp + 8]
lea eax, [edx + ecx + 0x78b8]
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x12c]
add edx, dword [eax + ecx*4 - 8]
mov dword [ebp - 0x13c], edx
mov eax, dword [ebp - 0x134]
shl eax, 5
mov ecx, dword [ebp + 8]
lea edx, [ecx + eax + 0xbcb8]
mov dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x138]
mov ecx, dword [ebp - 0x13c]
cmp ecx, dword [eax]
jae 0x525e8f
mov edx, dword [ebp - 0x138]
mov eax, dword [ebp - 0x13c]
mov dword [edx], eax
mov ecx, dword [ebp - 0x138]
mov edx, dword [ebp - 0x124]
mov dword [ecx + 8], edx
mov eax, dword [ebp - 0x138]
mov dword [eax + 0xc], 0
mov ecx, dword [ebp - 0x138]
mov word [ecx + 6], 1
mov dword [ebp - 0xb4], 2
mov dword [ebp - 0x140], 0
jmp 0x525eb4
mov edx, dword [ebp - 0x140]
add edx, 1
mov dword [ebp - 0x140], edx
cmp dword [ebp - 0x140], 4
jae 0x52641d
mov eax, dword [ebp - 0x140]
mov ecx, dword [ebp - 0xa4]
sub ecx, dword [ebp + eax*4 - 0x28]
mov dword [ebp - 0x144], ecx
mov edx, dword [ebp - 0xa4]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp - 0x144]
xor edx, edx
mov dl, byte [ecx]
cmp eax, edx
jne 0x525f09
mov eax, dword [ebp - 0xa4]
xor ecx, ecx
mov cl, byte [eax + 1]
mov edx, dword [ebp - 0x144]
xor eax, eax
mov al, byte [edx + 1]
cmp ecx, eax
je 0x525f0b
jmp 0x525ea5
mov dword [ebp - 0x14c], 2
jmp 0x525f26
mov ecx, dword [ebp - 0x14c]
add ecx, 1
mov dword [ebp - 0x14c], ecx
mov edx, dword [ebp - 0x14c]
cmp edx, dword [ebp - 0xc4]
jae 0x525f5a
mov eax, dword [ebp - 0xa4]
add eax, dword [ebp - 0x14c]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp - 0x144]
add edx, dword [ebp - 0x14c]
xor eax, eax
mov al, byte [edx]
cmp ecx, eax
jne 0x525f5a
jmp 0x525f17
mov ecx, dword [ebp - 0x2c]
add ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x150], ecx
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x150]
jae 0x525f7d
mov eax, dword [ebp - 0x150]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x154], ecx
mov edx, dword [ebp - 0xe4]
push edx
mov eax, dword [ebp - 0xb8]
push eax
mov ecx, dword [ebp - 0x140]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00526c23
add esp, 0x10
mov ecx, dword [ebp - 0xdc]
add ecx, eax
mov dword [ebp - 0x148], ecx
mov edx, dword [ebp - 0xe4]
imul edx, edx, 0x440
mov eax, dword [ebp + 8]
lea ecx, [eax + edx + 0x78b8]
mov edx, dword [ebp - 0x154]
mov eax, dword [ebp - 0x148]
add eax, dword [ecx + edx*4 - 8]
mov dword [ebp - 0x15c], eax
mov ecx, dword [ebp - 0x2c]
add ecx, dword [ebp - 0x154]
shl ecx, 5
mov edx, dword [ebp + 8]
lea eax, [edx + ecx + 0xbcb8]
mov dword [ebp - 0x158], eax
mov ecx, dword [ebp - 0x158]
mov edx, dword [ebp - 0x15c]
cmp edx, dword [ecx]
jae 0x526048
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x15c]
mov dword [eax], ecx
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x154]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x158]
mov edx, dword [ebp - 0x140]
mov dword [ecx + 0xc], edx
mov eax, dword [ebp - 0x158]
mov word [eax + 6], 0
mov ecx, dword [ebp - 0x154]
sub ecx, 1
mov dword [ebp - 0x154], ecx
cmp dword [ebp - 0x154], 2
jae 0x525fb8
cmp dword [ebp - 0x140], 0
jne 0x52607c
mov edx, dword [ebp - 0x14c]
add edx, 1
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0x14c]
add eax, 1
mov dword [ebp - 0x164], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x164]
add edx, dword [ecx + 0x30]
mov dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x160]
cmp eax, dword [ebp - 0xbc]
jbe 0x5260b7
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x160], ecx
mov edx, dword [ebp - 0x164]
add edx, 2
mov dword [ebp - 0x164], edx
mov eax, dword [ebp - 0x164]
cmp eax, dword [ebp - 0x160]
ja 0x526418
mov ecx, dword [ebp - 0xa4]
add ecx, dword [ebp - 0x164]
xor edx, edx
mov dl, byte [ecx - 2]
mov eax, dword [ebp - 0x144]
add eax, dword [ebp - 0x164]
xor ecx, ecx
mov cl, byte [eax - 2]
cmp edx, ecx
jne 0x526418
mov edx, dword [ebp - 0xa4]
add edx, dword [ebp - 0x164]
xor eax, eax
mov al, byte [edx - 1]
mov ecx, dword [ebp - 0x144]
add ecx, dword [ebp - 0x164]
xor edx, edx
mov dl, byte [ecx - 1]
cmp eax, edx
jne 0x526418
mov eax, dword [ebp - 0xb8]
xor ecx, ecx
mov cl, byte [eax + 0x72862c]
mov dword [ebp - 0x16c], ecx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0x14c]
mov eax, dword [ebp + 8]
and edx, dword [eax + 0x4c]
mov dword [ebp - 0x168], edx
mov ecx, dword [ebp - 0xe4]
imul ecx, ecx, 0x440
mov edx, dword [ebp + 8]
lea eax, [edx + ecx + 0x78b8]
mov ecx, dword [ebp - 0x16c]
shl ecx, 5
mov edx, dword [ebp + 8]
lea ecx, [edx + ecx + 0x1eb0]
mov edx, dword [ebp - 0x168]
xor esi, esi
mov si, word [ecx + edx*2]
sar esi, 4
mov ecx, dword [ebp - 0x14c]
mov edi, dword [eax + ecx*4 - 8]
mov edx, dword [ebp + 8]
add edi, dword [edx + esi*4 + 0x760]
mov eax, dword [ebp + 8]
add eax, 0x760
push eax
mov ecx, dword [ebp - 0x144]
add ecx, dword [ebp - 0x14c]
xor edx, edx
mov dl, byte [ecx]
push edx
mov eax, dword [ebp - 0xa4]
add eax, dword [ebp - 0x14c]
xor ecx, ecx
mov cl, byte [eax]
push ecx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0x14c]
shl edx, 8
mov eax, dword [ebp - 0xa4]
add eax, dword [ebp - 0x14c]
xor ecx, ecx
mov cl, byte [eax - 1]
add edx, ecx
mov eax, dword [ebp + 8]
and edx, dword [eax + 0x48]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x94]
shl edx, cl
imul edx, edx, 3
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x50]
lea edx, [ecx + edx*2]
push edx
call fcn.00526b98
add esp, 0x10
add eax, dword [ebp - 0x148]
add eax, edi
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x16c], 5
mov eax, dword [ebp - 0x168]
add eax, 1
mov ecx, dword [ebp + 8]
and eax, dword [ecx + 0x4c]
mov dword [ebp - 0x168], eax
mov edx, dword [ebp - 0x16c]
shl edx, 5
mov eax, dword [ebp + 8]
lea ecx, [eax + edx + 0x1eb0]
mov edx, dword [ebp - 0x168]
xor eax, eax
mov ax, word [ecx + edx*2]
xor eax, 0x7ff
sar eax, 4
mov ecx, dword [ebp - 0x16c]
shl ecx, 5
mov edx, dword [ebp + 8]
lea ecx, [edx + ecx + 0x2030]
mov edx, dword [ebp - 0x168]
xor esi, esi
mov si, word [ecx + edx*2]
xor esi, 0x7ff
sar esi, 4
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + eax*4 + 0x760]
mov eax, dword [ebp + 8]
add edx, dword [eax + esi*4 + 0x760]
mov ecx, dword [ebp - 0x16c]
mov eax, dword [ebp + 8]
xor esi, esi
mov si, word [eax + ecx*2 + 0x1e50]
xor esi, 0x7ff
sar esi, 4
mov ecx, dword [ebp + 8]
add edx, dword [ecx + esi*4 + 0x760]
mov eax, dword [ebp - 0x16c]
mov ecx, dword [ebp + 8]
xor esi, esi
mov si, word [ecx + eax*2 + 0x1e68]
sar esi, 4
mov eax, dword [ebp + 8]
add edx, dword [eax + esi*4 + 0x760]
mov ecx, dword [ebp - 0x148]
add ecx, edx
mov dword [ebp - 0x148], ecx
jmp 0x526306
mov edx, dword [ebp - 0x164]
add edx, 1
mov dword [ebp - 0x164], edx
mov eax, dword [ebp - 0x164]
cmp eax, dword [ebp - 0x160]
jae 0x52633a
mov ecx, dword [ebp - 0xa4]
add ecx, dword [ebp - 0x164]
xor edx, edx
mov dl, byte [ecx]
mov eax, dword [ebp - 0x144]
add eax, dword [ebp - 0x164]
xor ecx, ecx
mov cl, byte [eax]
cmp edx, ecx
jne 0x52633a
jmp 0x5262f7
mov edx, dword [ebp - 0x164]
sub edx, dword [ebp - 0x14c]
mov dword [ebp - 0x164], edx
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x14c]
add eax, dword [ebp - 0x164]
mov dword [ebp - 0x170], eax
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 0x170]
jae 0x526375
mov edx, dword [ebp - 0x170]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x164]
sub eax, 1
mov dword [ebp - 0x164], eax
mov ecx, dword [ebp - 0x168]
imul ecx, ecx, 0x440
mov edx, dword [ebp + 8]
lea eax, [edx + ecx + 0x78b8]
mov ecx, dword [ebp - 0x164]
mov edx, dword [ebp - 0x148]
add edx, dword [eax + ecx*4 - 8]
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x170]
shl eax, 5
mov ecx, dword [ebp + 8]
lea edx, [ecx + eax + 0xbcb8]
mov dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x174]
mov ecx, dword [ebp - 0x178]
cmp ecx, dword [eax]
jae 0x526418
mov edx, dword [ebp - 0x174]
mov eax, dword [ebp - 0x178]
mov dword [edx], eax
mov ecx, dword [ebp - 0x174]
mov edx, dword [ebp - 0x164]
mov dword [ecx + 8], edx
mov eax, dword [ebp - 0x14c]
add eax, 1
mov ecx, dword [ebp - 0x174]
mov word [ecx + 6], ax
mov edx, dword [ebp - 0x174]
mov eax, dword [ebp - 0x140]
mov dword [edx + 0xc], eax
jmp 0x525ea5
mov ecx, dword [ebp - 0xb0]
cmp ecx, dword [ebp - 0xc4]
jbe 0x526489
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0xd8], 0
jmp 0x526452
mov eax, dword [ebp - 0xd8]
add eax, 2
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0xb0]
cmp eax, dword [edx + ecx*4]
jbe 0x526468
jmp 0x526443
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0xb0]
mov dword [edx + ecx*4], eax
mov ecx, dword [ebp - 0xd8]
add ecx, 2
mov dword [ebp - 0xd8], ecx
mov edx, dword [ebp - 0xb0]
cmp edx, dword [ebp - 0xb4]
jb 0x526aff
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp + 8]
xor edx, edx
mov dx, word [ecx + eax*2 + 0x1e50]
sar edx, 4
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc0]
add ecx, dword [eax + edx*4 + 0x760]
mov dword [ebp - 0x188], ecx
mov edx, dword [ebp - 0x2c]
add edx, dword [ebp - 0xb0]
mov dword [ebp - 0x190], edx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x190]
jae 0x5264ea
mov ecx, dword [ebp - 0x190]
mov dword [ebp - 4], ecx
mov dword [ebp - 0x184], 0
mov edx, dword [ebp - 0x184]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xb4]
cmp ecx, dword [eax + edx*4]
jbe 0x526519
mov edx, dword [ebp - 0x184]
add edx, 2
mov dword [ebp - 0x184], edx
jmp 0x5264f4
mov eax, dword [ebp - 0x184]
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + eax*4 + 4]
mov dword [ebp - 0x180], edx
cmp dword [ebp - 0x180], 0x20000
sbb eax, eax
and al, 0xf6
add eax, 0x10
mov dword [ebp - 0x194], eax
mov edx, dword [ebp - 0x180]
mov ecx, dword [ebp - 0x194]
shr edx, cl
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax + edx + 0x2cb0]
mov edx, dword [ebp - 0x194]
lea eax, [ecx + edx*2]
mov dword [ebp - 0x17c], eax
mov ecx, dword [ebp - 0xb4]
mov dword [ebp - 0x18c], ecx
jmp 0x526589
mov edx, dword [ebp - 0x18c]
add edx, 1
mov dword [ebp - 0x18c], edx
mov eax, dword [ebp - 0xe4]
imul eax, eax, 0x440
mov ecx, dword [ebp + 8]
lea edx, [ecx + eax + 0x34b4]
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x188]
add ecx, dword [edx + eax*4 - 8]
mov dword [ebp - 0x198], ecx
mov edx, dword [ebp - 0x18c]
sub edx, 2
mov dword [ebp - 0x19c], edx
cmp dword [ebp - 0x19c], 3
jae 0x5265db
mov eax, dword [ebp - 0x19c]
mov dword [ebp - 0x1d8], eax
jmp 0x5265e5
mov dword [ebp - 0x1d8], 3
mov ecx, dword [ebp - 0x1d8]
mov dword [ebp - 0x19c], ecx
cmp dword [ebp - 0x180], 0x80
jae 0x52662a
mov edx, dword [ebp - 0x19c]
shl edx, 9
mov eax, dword [ebp + 8]
lea ecx, [eax + edx + 0x1630]
mov edx, dword [ebp - 0x180]
and edx, 0x7f
mov eax, dword [ebp - 0x198]
add eax, dword [ecx + edx*4]
mov dword [ebp - 0x198], eax
jmp 0x526667
mov ecx, dword [ebp - 0x19c]
shl ecx, 8
mov edx, dword [ebp + 8]
lea eax, [edx + ecx + 0x1230]
mov ecx, dword [ebp - 0x180]
and ecx, 0xf
mov edx, dword [ebp - 0x17c]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp + 8]
add eax, dword [edx + ecx*4 + 0x11f0]
mov ecx, dword [ebp - 0x198]
add ecx, eax
mov dword [ebp - 0x198], ecx
mov edx, dword [ebp - 0x2c]
add edx, dword [ebp - 0x18c]
shl edx, 5
mov eax, dword [ebp + 8]
lea ecx, [eax + edx + 0xbcb8]
mov dword [ebp - 0x1a0], ecx
mov edx, dword [ebp - 0x1a0]
mov eax, dword [ebp - 0x198]
cmp eax, dword [edx]
jae 0x5266ce
mov ecx, dword [ebp - 0x1a0]
mov edx, dword [ebp - 0x198]
mov dword [ecx], edx
mov eax, dword [ebp - 0x1a0]
mov ecx, dword [ebp - 0x18c]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 0x180]
add edx, 4
mov eax, dword [ebp - 0x1a0]
mov dword [eax + 0xc], edx
mov ecx, dword [ebp - 0x1a0]
mov word [ecx + 6], 0
mov edx, dword [ebp - 0x184]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18c]
cmp ecx, dword [eax + edx*4]
jne 0x526afa
mov edx, dword [ebp - 0xa4]
sub edx, dword [ebp - 0x180]
sub edx, 1
mov dword [ebp - 0x1a4], edx
mov eax, dword [ebp - 0x18c]
add eax, 1
mov dword [ebp - 0x1ac], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x1ac]
add edx, dword [ecx + 0x30]
mov dword [ebp - 0x1a8], edx
mov eax, dword [ebp - 0x1a8]
cmp eax, dword [ebp - 0xbc]
jbe 0x526736
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x1a8], ecx
mov edx, dword [ebp - 0x1ac]
add edx, 2
mov dword [ebp - 0x1ac], edx
mov eax, dword [ebp - 0x1ac]
cmp eax, dword [ebp - 0x1a8]
ja 0x526a87
mov ecx, dword [ebp - 0xa4]
add ecx, dword [ebp - 0x1ac]
xor edx, edx
mov dl, byte [ecx - 2]
mov eax, dword [ebp - 0x1a4]
add eax, dword [ebp - 0x1ac]
xor ecx, ecx
mov cl, byte [eax - 2]
cmp edx, ecx
jne 0x526a87
mov edx, dword [ebp - 0xa4]
add edx, dword [ebp - 0x1ac]
xor eax, eax
mov al, byte [edx - 1]
mov ecx, dword [ebp - 0x1a4]
add ecx, dword [ebp - 0x1ac]
xor edx, edx
mov dl, byte [ecx - 1]
cmp eax, edx
jne 0x526a87
jmp 0x5267bc
mov eax, dword [ebp - 0x1ac]
add eax, 1
mov dword [ebp - 0x1ac], eax
mov ecx, dword [ebp - 0x1ac]
cmp ecx, dword [ebp - 0x1a8]
jae 0x5267f0
mov edx, dword [ebp - 0xa4]
add edx, dword [ebp - 0x1ac]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp - 0x1a4]
add ecx, dword [ebp - 0x1ac]
xor edx, edx
mov dl, byte [ecx]
cmp eax, edx
jne 0x5267f0
jmp 0x5267ad
mov eax, dword [ebp - 0x1ac]
sub eax, dword [ebp - 0x18c]
mov dword [ebp - 0x1ac], eax
mov ecx, dword [ebp - 0xb8]
xor edx, edx
mov dl, byte [ecx + str._a_a_a_a_a_a_a_n_n_n_n_n_b_b_b_b_b_b_b_v_v_v_v_v_t_t_t_t_t_t_t_v_v_v_v_v]
mov dword [ebp - 0x1b8], edx
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x18c]
mov ecx, dword [ebp + 8]
and eax, dword [ecx + 0x4c]
mov dword [ebp - 0x1b0], eax
mov edx, dword [ebp - 0x1b8]
shl edx, 5
mov eax, dword [ebp + 8]
lea ecx, [eax + edx + 0x1eb0]
mov edx, dword [ebp - 0x1b0]
xor eax, eax
mov ax, word [ecx + edx*2]
sar eax, 4
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x198]
add edx, dword [ecx + eax*4 + 0x760]
mov dword [ebp - 0x198], edx
mov eax, dword [ebp + 8]
add eax, 0x760
push eax
mov ecx, dword [ebp - 0x1a4]
add ecx, dword [ebp - 0x18c]
xor edx, edx
mov dl, byte [ecx]
push edx
mov eax, dword [ebp - 0xa4]
add eax, dword [ebp - 0x18c]
xor ecx, ecx
mov cl, byte [eax]
push ecx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0x18c]
shl edx, 8
mov eax, dword [ebp - 0xa4]
add eax, dword [ebp - 0x18c]
xor ecx, ecx
mov cl, byte [eax - 1]
add edx, ecx
mov eax, dword [ebp + 8]
and edx, dword [eax + 0x48]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x94]
shl edx, cl
imul edx, edx, 3
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x50]
lea edx, [ecx + edx*2]
push edx
call fcn.00526b98
add esp, 0x10
mov ecx, dword [ebp - 0x198]
add ecx, eax
mov dword [ebp - 0x198], ecx
mov dword [ebp - 0x1b8], 4
mov edx, dword [ebp - 0x1b0]
add edx, 1
mov eax, dword [ebp + 8]
and edx, dword [eax + 0x4c]
mov dword [ebp - 0x1b0], edx
mov ecx, dword [ebp - 0x1b8]
shl ecx, 5
mov edx, dword [ebp + 8]
lea eax, [edx + ecx + 0x1eb0]
mov ecx, dword [ebp - 0x1b0]
xor edx, edx
mov dx, word [eax + ecx*2]
xor edx, 0x7ff
sar edx, 4
mov eax, dword [ebp - 0x1b8]
shl eax, 5
mov ecx, dword [ebp + 8]
lea eax, [ecx + eax + 0x2030]
mov ecx, dword [ebp - 0x1b0]
xor esi, esi
mov si, word [eax + ecx*2]
xor esi, 0x7ff
sar esi, 4
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx*4 + 0x760]
mov edx, dword [ebp + 8]
add ecx, dword [edx + esi*4 + 0x760]
mov eax, dword [ebp - 0x1b8]
mov edx, dword [ebp + 8]
xor esi, esi
mov si, word [edx + eax*2 + 0x1e50]
xor esi, 0x7ff
sar esi, 4
mov eax, dword [ebp + 8]
add ecx, dword [eax + esi*4 + 0x760]
mov edx, dword [ebp - 0x1b8]
mov eax, dword [ebp + 8]
xor esi, esi
mov si, word [eax + edx*2 + 0x1e68]
sar esi, 4
mov edx, dword [ebp + 8]
add ecx, dword [edx + esi*4 + 0x760]
mov eax, dword [ebp - 0x198]
add eax, ecx
mov dword [ebp - 0x198], eax
mov ecx, dword [ebp - 0x2c]
add ecx, dword [ebp - 0x18c]
add ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x1b4], ecx
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x1b4]
jae 0x5269e1
mov eax, dword [ebp - 0x1b4]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x1ac]
sub ecx, 1
mov dword [ebp - 0x1ac], ecx
mov edx, dword [ebp - 0x1b0]
imul edx, edx, 0x440
mov eax, dword [ebp + 8]
lea ecx, [eax + edx + 0x78b8]
mov edx, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x198]
add eax, dword [ecx + edx*4 - 8]
mov dword [ebp - 0x1c0], eax
mov ecx, dword [ebp - 0x1b4]
shl ecx, 5
mov edx, dword [ebp + 8]
lea eax, [edx + ecx + 0xbcb8]
mov dword [ebp - 0x1bc], eax
mov ecx, dword [ebp - 0x1bc]
mov edx, dword [ebp - 0x1c0]
cmp edx, dword [ecx]
jae 0x526a87
mov eax, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x1c0]
mov dword [eax], ecx
mov edx, dword [ebp - 0x1bc]
mov eax, dword [ebp - 0x1ac]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x18c]
add ecx, 1
mov edx, dword [ebp - 0x1bc]
mov word [edx + 6], cx
mov eax, dword [ebp - 0x180]
add eax, 4
mov ecx, dword [ebp - 0x1bc]
mov dword [ecx + 0xc], eax
mov edx, dword [ebp - 0x184]
add edx, 2
mov dword [ebp - 0x184], edx
mov eax, dword [ebp - 0x184]
cmp eax, dword [ebp - 0xd8]
jne 0x526aa6
jmp 0x526aff
mov ecx, dword [ebp - 0x184]
mov edx, dword [ebp - 8]
mov eax, dword [edx + ecx*4 + 4]
mov dword [ebp - 0x180], eax
cmp dword [ebp - 0x180], 0x20000
sbb ecx, ecx
and ecx, 0xfffffff6
add ecx, 0x10
mov dword [ebp - 0x1c4], ecx
mov edx, dword [ebp - 0x180]
mov ecx, dword [ebp - 0x1c4]
shr edx, cl
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax + edx + 0x2cb0]
mov edx, dword [ebp - 0x1c4]
lea eax, [ecx + edx*2]
mov dword [ebp - 0x17c], eax
jmp 0x52657a
jmp 0x525434
mov ecx, dword [ebp - 4]
shl ecx, 5
mov edx, dword [ebp + 8]
mov dword [edx + ecx + 0xbcb8], 0x40000000
mov eax, dword [ebp - 4]
sub eax, 1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x526b04
mov ecx, dword [ebp - 0x2c]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00526d2c
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret