Function at 0x14174
Capabilities:
Encrypt data using speck

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xfc
push esi
push edi
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
jmp 0x13f66
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x1c
jge 0x13f8e
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 0x14]
lea eax, [edx + ecx + 0xc]
push eax
push 0xe
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
lea eax, [edx + ecx + 8]
push eax
call fcn.00013910
jmp 0x13f5d
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
jmp 0x13fa7
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0x10
jge 0x13fcb
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
cmp dword [eax + edx + 0x404], 4
jne 0x13fc9
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x13f9e
mov edx, dword [ebp - 0x10]
mov dword [ebp - 4], edx
cmp dword [ebp - 0x10], 1
jg 0x14fd0
mov dword [ebp - 0x1c], 0x1c
mov dword [ebp - 0x14], 0x10
mov dword [ebp - 0x18], 0
mov dword [ebp - 0xc], 0
jmp 0x14002
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x10
jge 0x14026
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
cmp dword [edx + ecx + 0x404], 0
jne 0x14024
mov eax, dword [ebp - 0x14]
sub eax, 1
mov dword [ebp - 0x14], eax
jmp 0x13ff9
mov dword [ebp - 0xc], 0
jmp 0x14038
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0x1c
jge 0x14059
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
cmp dword [eax + edx + 0xc], 0
jne 0x14057
mov ecx, dword [ebp - 0x1c]
sub ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x1402f
cmp dword [ebp - 0x1c], 0
jne 0x14069
cmp dword [ebp - 0x14], 0
je 0x14fcb
cmp dword [ebp - 0x1c], 0
jne 0x14092
mov edx, dword [ebp + 0x14]
mov dword [edx + 0x3b4], 4
mov eax, dword [ebp + 0x14]
mov dword [eax + 0x3d8], 4
mov dword [ebp - 0x1c], 2
jmp 0x14059
cmp dword [ebp - 0x1c], 1
jne 0x140d4
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x3b4], 0
jne 0x140bc
mov edx, dword [ebp + 0x14]
mov dword [edx + 0x3b4], 4
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
jmp 0x140d2
mov ecx, dword [ebp + 0x14]
mov dword [ecx + 0x3d8], 4
mov edx, dword [ebp - 0x1c]
add edx, 1
mov dword [ebp - 0x1c], edx
jmp 0x14059
cmp dword [ebp - 0x14], 0
jne 0x14100
mov eax, dword [ebp + 8]
mov dword [eax + 0x5fc], 4
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x620], 4
mov dword [ebp - 0x14], 2
jmp 0x14059
cmp dword [ebp - 0x14], 1
jne 0x14145
mov edx, dword [ebp + 8]
cmp dword [edx + 0x5fc], 0
jne 0x1412a
mov eax, dword [ebp + 8]
mov dword [eax + 0x5fc], 4
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
jmp 0x14140
mov edx, dword [ebp + 8]
mov dword [edx + 0x620], 4
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
jmp 0x14059
cmp dword [ebp - 0x1c], 2
jne 0x143c7
mov dword [ebp - 0x20], 0
jmp 0x14161
mov ecx, dword [ebp - 0x20]
add ecx, 1
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], 0x1c
jge 0x141b3
mov edx, dword [ebp - 0x20]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
cmp dword [eax + edx + 0xc], 0
je 0x141b1
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x20]
add edx, 1
mov dword [ebp - 0x28], edx
jmp 0x14191
mov eax, dword [ebp - 0x28]
add eax, 1
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0x1c
jge 0x141b1
mov ecx, dword [ebp - 0x28]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 0x14]
cmp dword [edx + ecx + 0xc], 0
je 0x141af
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
jmp 0x141b3
jmp 0x14188
jmp 0x14158
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0xd8], ecx
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0xdc], edx
mov eax, 0x1a
cmp eax, 0xe
jne 0x141ff
cmp dword [ebp - 0xdc], 0xe
jl 0x141e7
mov ecx, dword [ebp - 0xdc]
add ecx, 0xc
mov dword [ebp - 0xdc], ecx
cmp dword [ebp - 0xd8], 0xe
jl 0x141ff
mov edx, dword [ebp - 0xd8]
add edx, 0xc
mov dword [ebp - 0xd8], edx
mov eax, dword [ebp - 0xdc]
imul eax, eax, 0xe0
mov ecx, dword [ebp - 0xd8]
mov edx, dword [eax + ecx*8 + 0x226a0]
mov eax, dword [eax + ecx*8 + 0x226a4]
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], 0
jmp 0x14237
mov ecx, dword [ebp - 0x20]
add ecx, 1
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], 0x10
jge 0x1438e
mov edx, dword [ebp - 0x20]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx + 0x408]
mov dword [ebp - 0x3c], ecx
movzx edx, word [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
sar eax, 8
movzx ecx, word [eax*2 + 0x1c0d8]
movzx edx, byte [edx + ecx + 0x1bcd0]
movzx eax, word [ebp - 0x32]
mov ecx, dword [ebp - 0x3c]
and ecx, 0xff
movzx ecx, word [ecx*2 + 0x1c0d8]
movzx eax, byte [eax + ecx + 0x1bcd0]
xor edx, eax
mov dword [ebp - 0x38], edx
movzx ecx, word [ebp - 0x30]
mov edx, dword [ebp - 0x3c]
sar edx, 8
movzx eax, word [edx*2 + 0x1c0d8]
movzx ecx, byte [ecx + eax + 0x1bcd0]
movzx edx, word [ebp - 0x2e]
mov eax, dword [ebp - 0x3c]
and eax, 0xff
movzx eax, word [eax*2 + 0x1c0d8]
movzx edx, byte [edx + eax + 0x1bcd0]
xor ecx, edx
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x20]
shl eax, 5
add eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + eax + 8]
xor edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x20]
shl eax, 5
add eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 8]
mov byte [ecx + eax + 8], dl
mov edx, dword [ebp - 0x20]
shl edx, 5
add edx, dword [ebp - 0x24]
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + edx + 8]
xor ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x20]
shl edx, 5
add edx, dword [ebp - 0x24]
mov eax, dword [ebp + 8]
mov byte [eax + edx + 8], cl
mov ecx, dword [ebp - 0x20]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
cmp dword [edx + ecx + 0x404], 0
je 0x14389
mov eax, dword [ebp - 0x20]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
cmp dword [ecx + eax + 0x404], 4
je 0x14349
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + 0x225a0]
add eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x20]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
cmp dword [edx + ecx + 0x404], 4
je 0x1436c
mov eax, dword [ebp - 0x40]
movzx ecx, byte [eax + 0x225a0]
add ecx, dword [ebp - 8]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x20]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
mov dword [eax + edx + 0x404], 0
mov ecx, dword [ebp - 0x14]
sub ecx, 1
mov dword [ebp - 0x14], ecx
jmp 0x1422e
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
mov dword [eax + edx + 0xc], 0
mov ecx, dword [ebp - 0x1c]
sub ecx, 1
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x24]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
mov dword [eax + edx + 0xc], 0
mov ecx, dword [ebp - 0x1c]
sub ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x14059
cmp dword [ebp - 0x14], 2
jne 0x1464d
mov dword [ebp - 0x44], 0
jmp 0x143e3
mov edx, dword [ebp - 0x44]
add edx, 1
mov dword [ebp - 0x44], edx
cmp dword [ebp - 0x44], 0x10
jge 0x1443b
mov eax, dword [ebp - 0x44]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
cmp dword [ecx + eax + 0x404], 0
je 0x14439
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x44]
add eax, 1
mov dword [ebp - 0x4c], eax
jmp 0x14416
mov ecx, dword [ebp - 0x4c]
add ecx, 1
mov dword [ebp - 0x4c], ecx
cmp dword [ebp - 0x4c], 0x10
jge 0x14439
mov edx, dword [ebp - 0x4c]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
cmp dword [eax + edx + 0x404], 0
je 0x14437
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x48], ecx
jmp 0x1443b
jmp 0x1440d
jmp 0x143da
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0xe0], edx
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0xe4], eax
mov ecx, 0xe
cmp ecx, 0xe
jne 0x14487
cmp dword [ebp - 0xe4], 0xe
jl 0x1446f
mov edx, dword [ebp - 0xe4]
add edx, 0xc
mov dword [ebp - 0xe4], edx
cmp dword [ebp - 0xe0], 0xe
jl 0x14487
mov eax, dword [ebp - 0xe0]
add eax, 0xc
mov dword [ebp - 0xe0], eax
mov ecx, dword [ebp - 0xe4]
imul ecx, ecx, 0xe0
mov edx, dword [ebp - 0xe0]
mov eax, dword [ecx + edx*8 + 0x226a0]
mov ecx, dword [ecx + edx*8 + 0x226a4]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x44], 0
jmp 0x144bf
mov edx, dword [ebp - 0x44]
add edx, 1
mov dword [ebp - 0x44], edx
cmp dword [ebp - 0x44], 0x1c
jge 0x1460e
mov eax, dword [ebp - 0x44]
imul eax, eax, 0x24
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + eax + 0x10]
mov dword [ebp - 0x60], edx
movzx eax, word [ebp - 0x58]
mov ecx, dword [ebp - 0x60]
sar ecx, 8
movzx edx, word [ecx*2 + 0x1c0d8]
movzx eax, byte [eax + edx + 0x1bcd0]
movzx ecx, word [ebp - 0x56]
mov edx, dword [ebp - 0x60]
and edx, 0xff
movzx edx, word [edx*2 + 0x1c0d8]
movzx ecx, byte [ecx + edx + 0x1bcd0]
xor eax, ecx
mov dword [ebp - 0x5c], eax
movzx edx, word [ebp - 0x54]
mov eax, dword [ebp - 0x60]
sar eax, 8
movzx ecx, word [eax*2 + 0x1c0d8]
movzx edx, byte [edx + ecx + 0x1bcd0]
movzx eax, word [ebp - 0x52]
mov ecx, dword [ebp - 0x60]
and ecx, 0xff
movzx ecx, word [ecx*2 + 0x1c0d8]
movzx eax, byte [eax + ecx + 0x1bcd0]
xor edx, eax
mov dword [ebp - 0x64], edx
mov ecx, dword [ebp - 0x50]
shl ecx, 5
add ecx, dword [ebp - 0x44]
mov edx, dword [ebp + 8]
movzx eax, byte [edx + ecx + 8]
xor eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x50]
shl ecx, 5
add ecx, dword [ebp - 0x44]
mov edx, dword [ebp + 8]
mov byte [edx + ecx + 8], al
mov eax, dword [ebp - 0x48]
shl eax, 5
add eax, dword [ebp - 0x44]
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + eax + 8]
xor edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x48]
shl eax, 5
add eax, dword [ebp - 0x44]
mov ecx, dword [ebp + 8]
mov byte [ecx + eax + 8], dl
mov edx, dword [ebp - 0x44]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
cmp dword [eax + edx + 0xc], 0
je 0x14609
mov ecx, dword [ebp - 0x50]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
cmp dword [edx + ecx + 0x404], 4
je 0x145cc
mov eax, dword [ebp - 0x5c]
movzx ecx, byte [eax + 0x225a0]
add ecx, dword [ebp - 8]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x48]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
cmp dword [eax + edx + 0x404], 4
je 0x145ef
mov ecx, dword [ebp - 0x64]
movzx edx, byte [ecx + 0x225a0]
add edx, dword [ebp - 8]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x44]
imul eax, eax, 0x24
mov ecx, dword [ebp + 0x14]
mov dword [ecx + eax + 0xc], 0
mov edx, dword [ebp - 0x1c]
sub edx, 1
mov dword [ebp - 0x1c], edx
jmp 0x144b6
mov eax, dword [ebp - 0x50]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
mov dword [ecx + eax + 0x404], 0
mov edx, dword [ebp - 0x14]
sub edx, 1
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x48]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
mov dword [ecx + eax + 0x404], 0
mov edx, dword [ebp - 0x14]
sub edx, 1
mov dword [ebp - 0x14], edx
jmp 0x14059
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0xc], 0
jmp 0x14674
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x10
jge 0x14733
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
cmp dword [edx + ecx + 0x404], 1
jne 0x1472e
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + eax + 0x410]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
cmp dword [eax + edx + 0xc], 1
jne 0x1472e
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx + 0x410]
imul eax, eax, 0x24
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + eax + 0x18]
cmp edx, dword [ebp - 0xc]
jne 0x1472e
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + eax + 0x410]
imul edx, edx, 0x24
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 0x14]
mov esi, dword [ebp + 8]
mov edx, dword [ecx + edx + 0x20]
cmp edx, dword [esi + eax + 0x418]
jne 0x1472e
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx + 0x410]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx + 0x418]
mov dword [ebp - 0x68], eax
jmp 0x14ce7
jmp 0x1466b
mov dword [ebp - 0xc], 0
jmp 0x14745
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0x1c
jge 0x147a5
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
cmp dword [eax + edx + 0xc], 1
jne 0x147a3
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + ecx + 0x18]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
cmp dword [ecx + eax + 0x404], 4
jne 0x147a3
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + edx + 0x18]
mov dword [ebp - 0x6c], ecx
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x70], edx
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + eax + 0x20]
mov dword [ebp - 0x68], edx
jmp 0x14ce7
jmp 0x1473c
mov dword [ebp - 0x74], 0x7fffffff
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x147bd
mov dword [ebp - 0x78], 1
jmp 0x147c4
mov dword [ebp - 0x78], 0
mov dword [ebp - 0xc], 0
jmp 0x147d6
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0x10
jge 0x14941
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
cmp dword [eax + edx + 0x404], 1
jne 0x1488f
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
cmp dword [edx + ecx + 0x424], 0
jne 0x14811
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + eax + 0x410]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
cmp dword [eax + edx + 0xc], 0
je 0x14883
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx + 0x420]
mov ecx, dword [ebp - 0x78]
lea edx, [ecx + eax*2]
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x74]
jge 0x14881
mov ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x74], ecx
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + eax + 0x410]
mov dword [ebp - 0x70], edx
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + eax + 0x418]
mov dword [ebp - 0x68], edx
jmp 0x1488a
mov dword [ebp - 0x18], 0
jmp 0x1493c
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
cmp dword [ecx + eax + 0x404], 3
jne 0x1493c
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx + 0x410]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 0x14]
cmp dword [edx + ecx + 0xc], 0
je 0x14935
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + eax + 0x414]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
cmp dword [eax + edx + 0xc], 0
je 0x14935
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx + 0x420]
mov ecx, dword [ebp - 0x78]
lea edx, [ecx + eax*2]
mov dword [ebp - 0x80], edx
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0x74]
jge 0x14933
mov ecx, dword [ebp - 0x80]
mov dword [ebp - 0x74], ecx
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + eax + 0x410]
mov dword [ebp - 0x70], edx
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + eax + 0x418]
mov dword [ebp - 0x68], edx
jmp 0x1493c
mov dword [ebp - 0x18], 0
jmp 0x147cd
mov dword [ebp - 0xc], 0
jmp 0x14953
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x1c
jge 0x14abf
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 0x14]
cmp dword [edx + ecx + 0xc], 1
jne 0x14a0b
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + eax + 0x2c], 0
jne 0x14988
mov dword [ebp - 0x18], 0
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + edx + 0x18]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
cmp dword [edx + ecx + 0x404], 0
je 0x149ff
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + eax + 0x28]
mov eax, 1
sub eax, dword [ebp - 0x78]
lea ecx, [eax + edx*2]
mov dword [ebp - 0x84], ecx
mov edx, dword [ebp - 0x84]
cmp edx, dword [ebp - 0x74]
jge 0x149fd
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x74], eax
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + ecx + 0x18]
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x70], ecx
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + edx + 0x20]
mov dword [ebp - 0x68], ecx
jmp 0x14a06
mov dword [ebp - 0x18], 0
jmp 0x14aba
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
cmp dword [eax + edx + 0xc], 3
jne 0x14aba
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + ecx + 0x18]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
cmp dword [ecx + eax + 0x404], 0
je 0x14ab3
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + edx + 0x1c]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
cmp dword [edx + ecx + 0x404], 0
je 0x14ab3
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + eax + 0x28]
mov eax, 1
sub eax, dword [ebp - 0x78]
lea ecx, [eax + edx*2]
mov dword [ebp - 0x88], ecx
mov edx, dword [ebp - 0x88]
cmp edx, dword [ebp - 0x74]
jge 0x14ab1
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x74], eax
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + ecx + 0x18]
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x70], ecx
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + edx + 0x20]
mov dword [ebp - 0x68], ecx
jmp 0x14aba
mov dword [ebp - 0x18], 0
jmp 0x1494a
cmp dword [ebp - 0x74], 6
jl 0x14ad4
cmp dword [ebp - 0x74], 0x7fffffff
jge 0x14ad9
cmp dword [ebp - 0x18], 0
je 0x14ad9
jmp 0x14ce7
xor edx, edx
cmp dword [ebp - 0x1c], 0xa
setle dl
push edx
push 0x1c
push 0x10
mov eax, dword [ebp + 0x14]
add eax, 0xc
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x404
push ecx
call fcn.000139b0
xor edx, edx
cmp dword [ebp - 0x14], 0xa
setle dl
push edx
push 0x10
push 0x1c
mov eax, dword [ebp + 8]
add eax, 0x404
push eax
mov ecx, dword [ebp + 0x14]
add ecx, 0xc
push ecx
call fcn.000139b0
mov dword [ebp - 0x18], 1
jmp 0x14059
mov ecx, dword [ebp - 0x68]
movzx edx, word [ecx*2 + 0x1c0d8]
mov dword [ebp - 0xa4], edx
mov eax, dword [ebp - 0x6c]
shl eax, 5
add eax, dword [ebp - 0x70]
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + eax + 8]
xor edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x6c]
shl eax, 5
add eax, dword [ebp - 0x70]
mov ecx, dword [ebp + 8]
mov byte [ecx + eax + 8], dl
mov edx, dword [ebp - 0x6c]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
cmp dword [eax + edx + 0x404], 4
je 0x14d3f
mov ecx, dword [ebp - 0x68]
movzx edx, byte [ecx + 0x225a0]
add edx, dword [ebp - 8]
mov dword [ebp - 8], edx
cmp dword [ebp - 0x70], 0x1a
jne 0x14d70
mov eax, dword [ebp - 0x6c]
imul eax, eax, 0x24
mov ecx, dword [ebp - 0x68]
shl ecx, 8
mov edx, dword [ebp + 8]
xor ecx, dword [edx + eax + 0x408]
mov eax, dword [ebp - 0x6c]
imul eax, eax, 0x24
mov edx, dword [ebp + 8]
mov dword [edx + eax + 0x408], ecx
jmp 0x14e06
cmp dword [ebp - 0x70], 0x1b
jne 0x14d9b
mov eax, dword [ebp - 0x6c]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + eax + 0x408]
xor edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x6c]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
mov dword [ecx + eax + 0x408], edx
jmp 0x14e06
mov edx, dword [ebp - 0x70]
movzx eax, byte [edx + 0x1c4d8]
mov dword [ebp - 0xa8], eax
mov ecx, dword [ebp - 0x70]
movzx edx, byte [ecx + 0x1c4f2]
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0x6c]
imul eax, eax, 0x24
mov ecx, dword [ebp - 0xa4]
add ecx, dword [ebp - 0xa8]
movzx edx, byte [ecx + 0x1bcd0]
shl edx, 8
mov ecx, dword [ebp - 0xa4]
add ecx, dword [ebp - 0xac]
movzx ecx, byte [ecx + 0x1bcd0]
or edx, ecx
mov ecx, dword [ebp + 8]
xor edx, dword [ecx + eax + 0x408]
mov eax, dword [ebp - 0x6c]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
mov dword [ecx + eax + 0x408], edx
mov edx, dword [ebp - 0x6c]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx + 0x408]
sar ecx, 8
mov edx, dword [ebp - 0x6c]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
mov cx, word [ecx*2 + 0x1c0d8]
mov word [eax + edx + 0x40c], cx
mov edx, dword [ebp - 0x6c]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx + 0x408]
and ecx, 0xff
mov edx, dword [ebp - 0x6c]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
mov cx, word [ecx*2 + 0x1c0d8]
mov word [eax + edx + 0x40e], cx
push 0x1a
mov edx, dword [ebp - 0x6c]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
lea ecx, [eax + edx + 0x404]
push ecx
call fcn.00013280
mov edx, dword [ebp - 0x6c]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
cmp dword [eax + edx + 0x404], 0
jne 0x14e95
mov ecx, dword [ebp - 0x14]
sub ecx, 1
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x6c], 0xe
jne 0x14ec0
mov edx, dword [ebp - 0x70]
imul edx, edx, 0x24
mov eax, dword [ebp - 0x68]
shl eax, 8
mov ecx, dword [ebp + 0x14]
xor eax, dword [ecx + edx + 0x10]
mov edx, dword [ebp - 0x70]
imul edx, edx, 0x24
mov ecx, dword [ebp + 0x14]
mov dword [ecx + edx + 0x10], eax
jmp 0x14f4a
cmp dword [ebp - 0x6c], 0xf
jne 0x14ee5
mov edx, dword [ebp - 0x70]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + edx + 0x10]
xor ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x70]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
mov dword [eax + edx + 0x10], ecx
jmp 0x14f4a
mov ecx, dword [ebp - 0x6c]
movzx edx, byte [ecx + 0x1c4d8]
mov dword [ebp - 0xb0], edx
mov eax, dword [ebp - 0x6c]
movzx ecx, byte [eax + 0x1c4f2]
mov dword [ebp - 0xb4], ecx
mov edx, dword [ebp - 0x70]
imul edx, edx, 0x24
mov eax, dword [ebp - 0xa4]
add eax, dword [ebp - 0xb0]
movzx ecx, byte [eax + 0x1bcd0]
shl ecx, 8
mov eax, dword [ebp - 0xa4]
add eax, dword [ebp - 0xb4]
movzx eax, byte [eax + 0x1bcd0]
or ecx, eax
mov eax, dword [ebp + 0x14]
xor ecx, dword [eax + edx + 0x10]
mov edx, dword [ebp - 0x70]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
mov dword [eax + edx + 0x10], ecx
mov ecx, dword [ebp - 0x70]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + ecx + 0x10]
sar eax, 8
mov ecx, dword [ebp - 0x70]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 0x14]
mov ax, word [eax*2 + 0x1c0d8]
mov word [edx + ecx + 0x14], ax
mov ecx, dword [ebp - 0x70]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + ecx + 0x10]
and eax, 0xff
mov ecx, dword [ebp - 0x70]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 0x14]
mov ax, word [eax*2 + 0x1c0d8]
mov word [edx + ecx + 0x16], ax
push 0xe
mov ecx, dword [ebp - 0x70]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 0x14]
lea eax, [edx + ecx + 0xc]
push eax
call fcn.00013280
mov ecx, dword [ebp - 0x70]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 0x14]
cmp dword [edx + ecx + 0xc], 0
jne 0x14fc6
mov eax, dword [ebp - 0x1c]
sub eax, 1
mov dword [ebp - 0x1c], eax
jmp 0x14059
jmp 0x1540b
mov dword [ebp - 0xbc], 0xffffffff
mov dword [ebp - 0xb8], 0xffffffff
mov dword [ebp - 0xc], 0
jmp 0x14ff6
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0x10
jge 0x15220
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx + 0x404]
mov dword [ebp - 0xf8], ecx
cmp dword [ebp - 0xf8], 1
je 0x15065
cmp dword [ebp - 0xf8], 2
je 0x15128
cmp dword [ebp - 0xf8], 4
je 0x1503a
jmp 0x1521b
cmp dword [ebp - 0xbc], 0xffffffff
jne 0x1504e
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0xbc], edx
jmp 0x15060
cmp dword [ebp - 0xb8], 0xffffffff
jne 0x15060
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xb8], eax
jmp 0x1521b
mov ecx, dword [ebp - 0xc]
shl ecx, 5
mov edx, dword [ebp + 8]
lea eax, [edx + ecx + 4]
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
mov ecx, dword [edx + ecx + 0x410]
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
movzx eax, byte [eax + ecx + 4]
mov ecx, dword [ebp + 8]
xor eax, dword [ecx + edx + 0x418]
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov ecx, dword [ebp - 0xc]
shl ecx, 5
mov esi, dword [ebp + 8]
lea ecx, [esi + ecx + 4]
mov esi, dword [ebp + 8]
mov edx, dword [esi + edx + 0x410]
mov byte [ecx + edx + 4], al
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
mov dword [ecx + eax + 0x404], 0
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
mov dword [eax + edx + 0x408], 0
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
mov word [edx + ecx + 0x40c], 0x200
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
mov word [ecx + eax + 0x40e], 0x200
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx + 0x418]
movzx edx, byte [ecx + 0x225a0]
add edx, dword [ebp - 8]
mov dword [ebp - 8], edx
jmp 0x1521b
mov eax, dword [ebp - 0xc]
shl eax, 5
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
mov ecx, dword [edx + ecx + 0x408]
sar ecx, 8
mov edx, dword [ebp + 8]
movzx eax, byte [edx + eax + 0x22]
xor eax, ecx
mov ecx, dword [ebp - 0xc]
shl ecx, 5
mov edx, dword [ebp + 8]
mov byte [edx + ecx + 0x22], al
mov eax, dword [ebp - 0xc]
shl eax, 5
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
mov ecx, dword [edx + ecx + 0x408]
and ecx, 0xff
mov edx, dword [ebp + 8]
movzx eax, byte [edx + eax + 0x23]
xor eax, ecx
mov ecx, dword [ebp - 0xc]
shl ecx, 5
mov edx, dword [ebp + 8]
mov byte [edx + ecx + 0x23], al
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + eax + 0x408]
sar edx, 8
movzx eax, byte [edx + 0x225a0]
add eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx + 0x408]
and eax, 0xff
movzx ecx, byte [eax + 0x225a0]
add ecx, dword [ebp - 8]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
mov dword [eax + edx + 0x404], 0
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
mov dword [edx + ecx + 0x408], 0
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
mov word [ecx + eax + 0x40c], 0x200
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov eax, dword [ebp + 8]
mov word [eax + edx + 0x40e], 0x200
jmp 0x14fed
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xf0], ecx
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0xf4], edx
mov eax, 0xe
cmp eax, 0xe
jne 0x15272
cmp dword [ebp - 0xf4], 0xe
jl 0x1525a
mov ecx, dword [ebp - 0xf4]
add ecx, 0xc
mov dword [ebp - 0xf4], ecx
cmp dword [ebp - 0xf0], 0xe
jl 0x15272
mov edx, dword [ebp - 0xf0]
add edx, 0xc
mov dword [ebp - 0xf0], edx
mov eax, dword [ebp - 0xf4]
imul eax, eax, 0xe0
mov ecx, dword [ebp - 0xf0]
mov edx, dword [eax + ecx*8 + 0x226a0]
mov eax, dword [eax + ecx*8 + 0x226a4]
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xc], 0
jmp 0x152b0
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0x1c
jge 0x153d7
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + edx + 0x10]
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0xbc]
shl edx, 5
mov eax, dword [ebp + 8]
lea ecx, [eax + edx + 4]
movzx edx, word [ebp - 0xc4]
mov eax, dword [ebp - 0xc8]
sar eax, 8
movzx eax, word [eax*2 + 0x1c0d8]
movzx edx, byte [edx + eax + 0x1bcd0]
movzx eax, word [ebp - 0xc2]
mov esi, dword [ebp - 0xc8]
and esi, 0xff
movzx esi, word [esi*2 + 0x1c0d8]
movzx eax, byte [eax + esi + 0x1bcd0]
xor edx, eax
mov eax, dword [ebp - 0xc]
movzx ecx, byte [ecx + eax + 4]
xor ecx, edx
mov edx, dword [ebp - 0xbc]
shl edx, 5
add edx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
mov byte [eax + edx + 8], cl
mov ecx, dword [ebp - 0xb8]
shl ecx, 5
mov edx, dword [ebp + 8]
lea eax, [edx + ecx + 4]
movzx ecx, word [ebp - 0xc0]
mov edx, dword [ebp - 0xc8]
sar edx, 8
movzx edx, word [edx*2 + 0x1c0d8]
movzx ecx, byte [ecx + edx + 0x1bcd0]
movzx edx, word [ebp - 0xbe]
mov esi, dword [ebp - 0xc8]
and esi, 0xff
movzx esi, word [esi*2 + 0x1c0d8]
movzx edx, byte [edx + esi + 0x1bcd0]
xor ecx, edx
mov edx, dword [ebp - 0xc]
movzx eax, byte [eax + edx + 4]
xor eax, ecx
mov ecx, dword [ebp - 0xb8]
shl ecx, 5
add ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
mov byte [edx + ecx + 8], al
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x24
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + eax + 0xc], 0
je 0x153d2
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x24
mov eax, dword [ebp + 0x14]
mov dword [eax + edx + 0xc], 0
jmp 0x152a7
cmp dword [ebp - 0x10], 2
jne 0x1540b
mov ecx, dword [ebp - 0xbc]
imul ecx, ecx, 0x24
mov edx, dword [ebp + 8]
mov dword [edx + ecx + 0x404], 0
mov eax, dword [ebp - 0xb8]
imul eax, eax, 0x24
mov ecx, dword [ebp + 8]
mov dword [ecx + eax + 0x404], 0
push 0x206d6457
push 0x248
push 0
call dword [0x1973c]
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0xcc], 0
jne 0x15431
jmp 0x15663
mov edx, dword [ebp + 8]
cmp dword [edx + 0x898], 0
je 0x15458
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov eax, dword [eax + 0x894]
cdq
idiv dword [ecx + 0x898]
mov dword [ebp - 0xfc], eax
jmp 0x15462
mov dword [ebp - 0xfc], 0
mov edx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xfc]
mov dword [edx + 0x244], eax
mov dword [ebp - 0xc], 0
jmp 0x15486
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0x10
jge 0x155cc
mov edx, dword [ebp - 0xc]
shl edx, 5
mov eax, dword [ebp + 8]
cmp dword [eax + edx + 4], 0xffffffff
jne 0x154f6
cmp dword [ebp - 0xc], 0
jle 0x154b9
mov ecx, dword [ebp - 0xc]
sub ecx, 1
shl ecx, 5
mov edx, dword [ebp + 8]
cmp dword [edx + ecx + 4], 0
jne 0x154d2
cmp dword [ebp - 0xc], 0xd
jge 0x154e5
mov eax, dword [ebp - 0xc]
add eax, 1
shl eax, 5
mov ecx, dword [ebp + 8]
cmp dword [ecx + eax + 4], 0
je 0x154e5
mov edx, dword [ebp - 0xc]
shl edx, 5
mov eax, dword [ebp + 8]
mov dword [eax + edx + 4], 2
jmp 0x154f6
mov ecx, dword [ebp - 0xc]
shl ecx, 5
mov edx, dword [ebp + 8]
mov dword [edx + ecx + 4], 0
mov eax, dword [ebp - 0xc]
shl eax, 5
mov ecx, dword [ebp + 8]
cmp dword [ecx + eax + 4], 0
je 0x155b1
mov edx, dword [ebp - 0xc]
shl edx, 5
mov eax, dword [ebp + 8]
lea ecx, [eax + edx + 0x21]
mov dword [ebp - 0xd4], ecx
mov edx, dword [ebp - 0xc]
shl edx, 5
mov eax, dword [ebp + 8]
lea ecx, [eax + edx + 8]
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebp - 0xd4]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
cmp eax, edx
jle 0x15568
mov eax, dword [ebp - 0xd4]
movzx ecx, byte [eax]
cmp ecx, 0xea
jne 0x15568
mov edx, dword [ebp - 0xd4]
sub edx, 1
mov dword [ebp - 0xd4], edx
jmp 0x15530
mov eax, dword [ebp - 0xd4]
movzx ecx, byte [eax]
cmp ecx, 0x15
je 0x1558e
push 0x1a
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0xcc]
push eax
call fcn.000131c0
jmp 0x155af
mov ecx, dword [ebp - 0xd4]
sub ecx, dword [ebp - 0xd0]
push ecx
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.000131c0
jmp 0x155c7
push 0x1a
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.000131c0
jmp 0x1547d
mov edx, dword [ebp - 0xcc]
mov eax, dword [ebp - 8]
mov dword [edx + 0x240], eax
mov ecx, 0x10
sub ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
mov edx, dword [ebp + 0x10]
push edx
call dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x884]
sub ecx, 0x10
mov edx, dword [ebp + 8]
mov dword [edx + 0x884], ecx
mov esi, dword [ebp + 8]
add esi, 0x204
mov edi, dword [ebp + 8]
add edi, 4
mov ecx, 0x80
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 8]
add esi, 0x644
mov edi, dword [ebp + 8]
add edi, 0x404
mov ecx, 0x90
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xc], 0x10
jmp 0x1564e
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x20
jge 0x15663
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00013050
jmp 0x15645
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10