Function at 0x5a85c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x1678
call fcn.004eb910
mov eax, dword [0x617560]
xor eax, esp
mov dword [esp + 0x1674], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
shl ecx, 4
mov dword [esp + 0x88], eax
mov eax, dword [ecx + 0x5e3670]
lea ecx, [esi + eax*4 + 0x3780]
mov dword [esp + 0x48], ecx
mov ecx, dword [edx]
push ebx
mov ebx, dword [esi + 0x1f3c]
push edi
mov edi, dword [ecx*4 + 0x5e3b38]
add edi, edi
lea eax, [esi + eax*4 + 0x3840]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x5c], edi
mov edi, dword [ecx*8 + 0x5e34f0]
mov ecx, dword [ecx*8 + 0x5e34f4]
mov dword [esp + 0x54], eax
movsx eax, word [edx + 0x40]
mov dword [esp + 0x70], ecx
mov ecx, dword [esi + 0x1f34]
cmp eax, ecx
mov dword [esp + 0x2c], edx
jge 0x5a864d
mov ebx, ecx
jmp 0x5a8653
cmp eax, ebx
jg 0x5a8653
mov ebx, eax
mov eax, dword [edx + 4]
add ebx, ebx
mov dword [esp + 0xb0], eax
sub eax, ebx
mov dword [esp + 0x64], eax
movsx eax, word [edx + 0x42]
cmp eax, ecx
jge 0x5a8671
mov eax, ecx
jmp 0x5a867d
mov edx, dword [esi + 0x1f3c]
cmp eax, edx
jle 0x5a867d
mov eax, edx
mov ebx, dword [esp + 0x90]
lea edx, [eax + eax]
mov eax, dword [esp + 0xb0]
sub eax, edx
mov dword [esp + 0x58], eax
movsx eax, word [ebx + 0x40]
cmp eax, ecx
jge 0x5a86a0
mov edx, ecx
jmp 0x5a86ac
mov edx, dword [esi + 0x1f3c]
cmp eax, edx
jg 0x5a86ac
mov edx, eax
mov eax, dword [ebx + 4]
add edx, edx
mov ebx, edx
mov edx, eax
sub edx, ebx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x90]
movsx ebx, word [edx + 0x42]
cmp ebx, ecx
jl 0x5a86d6
mov ecx, dword [esi + 0x1f3c]
cmp ebx, ecx
jg 0x5a86d6
mov ecx, ebx
movsx ebx, word [edx + 0x4e]
add ecx, ecx
sub eax, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
movsx eax, word [ecx + 0x4c]
movsx ecx, word [ecx + 0x4e]
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], eax
movsx eax, word [edx + 0x4c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], eax
mov eax, 0x10000000
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x1f40]
add eax, 0xfffffff8
cmp ecx, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x38], 0
jg 0x5ac7c8
cmp ebx, eax
jg 0x5ac7c8
mov eax, dword [esi + 0x4d34]
lea edx, [esp + 0x270]
push 0x200
push edx
call eax
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x28]
push edi
push edx
mov edx, dword [esp + 0x38]
lea eax, [ecx + 0x10]
mov ecx, dword [ecx + 0x38]
push edx
push ecx
mov ecx, dword [esi + 0x4cd0]
push eax
lea edx, [esp + 0x110]
push edx
lea eax, [esp + 0x894]
push eax
mov dword [esp + 0x118], edi
mov dword [esp + 0x13c], edi
call ecx
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0xb8]
push edx
push edi
mov edx, ebx
push edx
mov edx, dword [esp + 0x54]
push edx
mov dword [esp + 0x170], eax
lea eax, [ecx + 0x10]
mov ecx, dword [ecx + 0x38]
push ecx
mov ecx, dword [esi + 0x4cd0]
push eax
lea edx, [esp + 0x154]
push edx
lea eax, [esp + 0x11b4]
push eax
call ecx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x1a4], eax
mov eax, dword [esp + 0x64]
and edx, 7
and eax, 7
lea ecx, [eax + edx*8]
mov edx, dword [esp + 0x68]
and edx, 7
lea eax, [esp + edx + 0x2b8]
lea edx, [eax + ecx*8]
mov ecx, ebx
and ecx, 7
add esp, 0x48
mov al, 1
shl al, cl
mov ecx, dword [ebp + 0xc]
push ecx
mov ecx, dword [esp + 0xf4]
or byte [edx], al
mov edx, dword [esp + 0x118]
mov eax, dword [esp + 0x160]
push edx
mov edx, dword [esp + 0x140]
push eax
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [esi + ecx*4 + 0x4cd8]
lea eax, [esp + 0x184]
push edi
push eax
call edx
mov ecx, dword [esp + 0x48]
push edi
lea eax, [esp + 0x190]
push eax
push 0x10
mov edx, dword [ecx + 0x28]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esi + eax*4 + 0x4b40]
push edx
call ecx
mov edx, dword [esp + 0x78]
mov ecx, ebx
movsx edx, word [edx + ecx*2]
mov ecx, dword [esp + 0x8c]
add eax, edx
mov edx, dword [esp + 0x4c]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x84]
add eax, ecx
mov ecx, dword [esp + 0x48]
movsx edx, word [edx + ecx*2]
mov ecx, dword [esp + 0x90]
add eax, edx
mov edx, dword [esp + 0x50]
movsx ecx, word [ecx + edx*2]
add esp, 0x2c
add eax, ecx
cmp dword [ebp + 0x18], 0
je 0x5a891f
cmp eax, 0x1000000
jge 0x5a892a
cmp eax, 0x10000000
jge 0x5a88bd
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x1c]
movzx eax, word [esp + 0x24]
mov ecx, dword [esp + 0x50]
shl edx, 0x10
add eax, edx
mov edx, dword [esp + 0x5c]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov ecx, dword [esp + 0x28]
movzx eax, word [esp + 0x20]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
push edx
push eax
push ecx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, 0x10000000
ja 0x5a892a
jb 0x5a8915
test eax, eax
jae 0x5a892a
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5a892a
cmp eax, 0x10000000
jge 0x5a892a
mov dword [esp + 0x10], eax
mov dword [esp + 0x48], 0
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
push edx
push edi
push ecx
add eax, 1
push eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x38]
push edx
mov edx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea eax, [esp + 0x114]
push eax
lea ecx, [esp + 0xb8c]
push ecx
mov dword [esp + 0x11c], edi
mov dword [esp + 0x140], edi
call edx
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x48]
push ecx
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x44]
push edi
push edx
add eax, 1
push eax
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0x38]
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x158]
push edx
lea eax, [esp + 0x14ac]
push eax
call ecx
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x5c]
add esp, 0x40
push edx
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0x28]
push edi
push ecx
add eax, 0xffffffff
push eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x38]
push edx
mov edx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea eax, [esp + 0xfc]
push eax
lea ecx, [esp + 0x58c]
push ecx
mov dword [esp + 0x104], edi
mov dword [esp + 0x128], edi
call edx
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x48]
push ecx
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x44]
push edi
add eax, 0xffffffff
push edx
push eax
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0x38]
push ecx
add eax, 0x10
mov ecx, dword [esi + 0x4cd0]
push eax
lea edx, [esp + 0x140]
push edx
lea eax, [esp + 0xeac]
push eax
call ecx
mov edx, dword [esp + 0xb0]
add esp, 0x40
push edx
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x20]
add eax, 1
push edi
push eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x38]
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x10c]
push edx
lea eax, [esp + 0x98c]
push eax
mov dword [esp + 0x114], edi
mov dword [esp + 0x138], edi
call ecx
mov edx, dword [esp + 0x90]
push edx
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x4c]
add eax, 1
push edi
push eax
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0x38]
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x150]
push edx
lea eax, [esp + 0x12ac]
push eax
call ecx
mov edx, dword [esp + 0xb0]
add esp, 0x40
push edx
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x20]
add eax, 0xffffffff
push edi
push eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x38]
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x104]
push edx
lea eax, [esp + 0x78c]
push eax
mov dword [esp + 0x10c], edi
mov dword [esp + 0x130], edi
call ecx
mov edx, dword [esp + 0x90]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x48]
add eax, 0xffffffff
mov dword [esp + 0x94], eax
push edx
push edi
push eax
mov eax, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0x38]
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x148]
push edx
lea eax, [esp + 0x10ac]
push eax
call ecx
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xac]
add esp, 0x40
push edx
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x80]
push edi
push eax
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x38]
push ecx
push edx
mov edx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea eax, [esp + 0x118]
push eax
lea ecx, [esp + 0xc8c]
push ecx
mov dword [esp + 0x120], edi
mov dword [esp + 0x144], edi
call edx
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x88]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x90]
push eax
mov eax, dword [esp + 0xb4]
push edi
push ecx
mov ecx, dword [eax + 0x38]
push edx
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x15c]
push edx
lea eax, [esp + 0x15ac]
push eax
call ecx
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb8]
add esp, 0x40
push edx
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0x8c]
push edi
push eax
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x38]
push ecx
push edx
mov edx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea eax, [esp + 0xf8]
push eax
lea ecx, [esp + 0x48c]
push ecx
mov dword [esp + 0x100], edi
mov dword [esp + 0x124], edi
call edx
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0xa0]
push eax
mov eax, dword [esp + 0xb4]
push edi
push ecx
mov ecx, dword [eax + 0x38]
push edx
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x13c]
push edx
lea eax, [esp + 0xdac]
push eax
call ecx
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xac]
add esp, 0x40
push edx
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x8c]
push edi
push eax
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x38]
push ecx
push edx
mov edx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea eax, [esp + 0x110]
push eax
lea ecx, [esp + 0xa8c]
push ecx
mov dword [esp + 0x118], edi
mov dword [esp + 0x13c], edi
call edx
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x88]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x90]
push eax
mov eax, dword [esp + 0xb4]
push edi
push ecx
mov ecx, dword [eax + 0x38]
push edx
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x154]
push edx
lea eax, [esp + 0x13ac]
push eax
call ecx
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb8]
add esp, 0x40
push edx
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x80]
push edi
push eax
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x38]
push ecx
push edx
mov edx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea eax, [esp + 0x100]
push eax
lea ecx, [esp + 0x68c]
push ecx
mov dword [esp + 0x108], edi
mov dword [esp + 0x12c], edi
call edx
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa0]
push eax
mov eax, dword [esp + 0xb4]
push edi
push ecx
mov ecx, dword [eax + 0x38]
push edx
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x144]
push edx
lea eax, [esp + 0xfac]
push eax
call ecx
add esp, 0x40
cmp dword [esp + 0x48], 0
mov dword [esp + 0x154], eax
je 0x5a8ea6
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
and ecx, 7
add ecx, ecx
add ecx, ecx
add ecx, ecx
and eax, 7
mov dword [esp + 0xa0], ecx
add ecx, eax
add ecx, ecx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x20]
add ecx, ecx
add ecx, ecx
and eax, 7
mov dword [esp + 0x8c], eax
add eax, ecx
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x84]
lea edx, [esp + eax + 0x270]
and ecx, 7
mov eax, 1
shl eax, cl
mov dword [esp + 0x98], ecx
mov ecx, edx
mov dword [esp + 0x9c], edx
mov dl, byte [ecx]
test dl, al
jne 0x5a9063
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
and ecx, 7
add ecx, ecx
add ecx, ecx
add ecx, ecx
and eax, 7
mov dword [esp + 0xa0], ecx
add ecx, eax
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x20]
add ecx, ecx
add ecx, ecx
add ecx, ecx
and eax, 7
mov dword [esp + 0x8c], eax
add eax, ecx
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x84]
and ecx, 7
mov dl, 1
shl dl, cl
lea eax, [esp + eax + 0x270]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], ecx
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x160]
push eax
mov eax, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0x140]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
mov eax, dword [esp + 0x54]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x4c]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x48]
movsx edx, word [edx + eax*2]
mov eax, dword [esp + 0x90]
add ecx, edx
mov edx, dword [esp + 0x50]
movsx eax, word [eax + edx*2]
add esp, 0x2c
add ecx, eax
cmp dword [ebp + 0x18], 0
je 0x5a904e
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5a9063
cmp ecx, dword [esp + 0x10]
jge 0x5a8fdd
mov dword [esp + 0x10], ecx
movzx edx, word [esp + 0x24]
mov ecx, dword [esp + 0x1c]
shl ecx, 0x10
lea eax, [ecx + edx]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x28]
movzx ecx, word [esp + 0x20]
add eax, 1
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a9063
jb 0x5a9039
cmp eax, dword [esp + 0x38]
jae 0x5a9063
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], eax
jmp 0x5a9063
cmp ecx, dword [esp + 0x10]
jge 0x5a9063
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5a9090
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x9c]
and ecx, 7
mov edx, 1
shl edx, cl
mov dword [esp + 0x94], ecx
mov cl, byte [eax]
test cl, dl
jne 0x5a91f3
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x9c]
and ecx, 7
mov dl, 1
shl dl, cl
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x110]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x158]
push eax
mov eax, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0x140]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 - 2]
mov edx, dword [esp + 0x8c]
add ecx, eax
mov eax, dword [esp + 0x4c]
movsx edx, word [edx + eax*2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x48]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x50]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5a91e1
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5a91f3
cmp ecx, dword [esp + 0x10]
jge 0x5a9178
mov dword [esp + 0x10], ecx
movzx ecx, word [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x5c]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x20]
lea eax, [ebx - 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a91f3
jb 0x5a91cf
cmp eax, dword [esp + 0x38]
jae 0x5a91f3
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], eax
jmp 0x5a91f3
cmp ecx, dword [esp + 0x10]
jge 0x5a91f3
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5a9239
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0xa4]
and eax, 7
add edx, eax
mov dword [esp + 0xa8], eax
lea eax, [esp + edx + 0x270]
mov ecx, ebx
and ecx, 7
mov edx, 1
shl edx, cl
mov dword [esp + 0x44], ecx
mov cl, byte [eax]
mov dword [esp + 0x9c], eax
test cl, dl
jne 0x5a93b8
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0xa4]
and eax, 7
mov dword [esp + 0xa8], eax
add eax, edx
mov ecx, ebx
and ecx, 7
mov dl, 1
shl dl, cl
lea eax, [esp + eax + 0x270]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x44], ecx
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x168]
push eax
mov eax, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0x140]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x4c]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x78]
add ecx, edx
movsx edx, word [eax + ebx*2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x48]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x50]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5a93a2
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5a93b8
cmp ecx, dword [esp + 0x10]
jge 0x5a933a
mov dword [esp + 0x10], ecx
movzx ecx, word [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x5c]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx eax, word [esp + 0x68]
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a93b8
jb 0x5a9390
cmp eax, dword [esp + 0x38]
jae 0x5a93b8
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], eax
jmp 0x5a93b4
cmp ecx, dword [esp + 0x10]
jge 0x5a93b8
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x48], 0
je 0x5a93fc
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x44]
and eax, 7
mov dword [esp + 0xac], eax
add eax, edx
mov edx, 1
lea eax, [esp + eax + 0x270]
shl edx, cl
mov dword [esp + 0xb8], eax
mov al, byte [eax]
test al, dl
jne 0x5a9586
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0xa4]
and eax, 7
mov dword [esp + 0xac], eax
add eax, ecx
mov ecx, dword [esp + 0x44]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x108]
lea eax, [esp + eax + 0x270]
mov dword [esp + 0xb8], eax
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0x140]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x78]
add ecx, edx
movsx edx, word [eax + ebx*2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x48]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x50]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5a956d
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5a9586
cmp ecx, dword [esp + 0x10]
jge 0x5a94fb
mov dword [esp + 0x10], ecx
movzx ecx, word [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x5c]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
add eax, 0xffffffff
and eax, 0xffff
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a9586
jb 0x5a9558
cmp eax, dword [esp + 0x38]
jae 0x5a9586
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], eax
jmp 0x5a9582
cmp ecx, dword [esp + 0x10]
jge 0x5a9586
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x48], 0
je 0x5a95dd
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x8c]
and eax, 7
mov dword [esp + 0xd4], eax
add eax, edx
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xbc], eax
add eax, ecx
mov ecx, dword [esp + 0x44]
mov edx, 1
lea eax, [esp + eax + 0x270]
shl edx, cl
mov dword [esp + 0xc4], eax
mov al, byte [eax]
test al, dl
jne 0x5a9780
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x8c]
and eax, 7
mov dword [esp + 0xd4], eax
add eax, ecx
mov ecx, dword [esp + 0x44]
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xbc], eax
add eax, edx
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x114]
lea eax, [esp + eax + 0x270]
mov dword [esp + 0xc4], eax
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x15c]
push eax
mov eax, dword [esp + 0xf8]
push ecx
mov ecx, dword [esp + 0x144]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x84]
mov ecx, eax
mov eax, dword [esp + 0x48]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x78]
add ecx, edx
movsx edx, word [eax + ebx*2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x50]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5a9762
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5a9780
cmp ecx, dword [esp + 0x10]
jge 0x5a96ef
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x1c]
movzx ecx, word [esp + 0x24]
mov edx, dword [esp + 0x5c]
add eax, 1
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
mov eax, ebx
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a9780
jb 0x5a9748
cmp eax, dword [esp + 0x38]
jae 0x5a9780
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
jmp 0x5a977c
cmp ecx, dword [esp + 0x10]
jge 0x5a9780
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x48], 0
je 0x5a97da
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x8c]
and eax, 7
mov dword [esp + 0xdc], eax
add eax, ecx
mov ecx, dword [esp + 0x44]
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xa4], eax
add eax, edx
mov edx, 1
lea eax, [esp + eax + 0x270]
shl edx, cl
mov dword [esp + 0xd0], eax
mov al, byte [eax]
test al, dl
jne 0x5a9986
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x8c]
and eax, 7
mov dword [esp + 0xdc], eax
add eax, ecx
mov ecx, dword [esp + 0x44]
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xa4], eax
add eax, edx
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x114]
lea eax, [esp + eax + 0x270]
mov dword [esp + 0xd0], eax
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x15c]
push eax
mov eax, dword [esp + 0xf0]
push ecx
mov ecx, dword [esp + 0x13c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x84]
mov ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x78]
add ecx, edx
movsx edx, word [eax + ebx*2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x50]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5a9965
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5a9986
cmp ecx, dword [esp + 0x10]
jge 0x5a98ef
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x24]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
mov eax, ebx
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a9986
jb 0x5a9948
cmp eax, dword [esp + 0x38]
jae 0x5a9986
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
jmp 0x5a9982
cmp ecx, dword [esp + 0x10]
jge 0x5a9986
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x48], 0
je 0x5a99e3
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x8c]
and eax, 7
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xc0], eax
add eax, ecx
mov ecx, dword [esp + 0x44]
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xb0], eax
add eax, edx
mov edx, 1
lea eax, [esp + eax + 0x270]
shl edx, cl
mov dword [esp + 0xb4], eax
mov al, byte [eax]
test al, dl
jne 0x5a9b81
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x8c]
and eax, 7
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xc0], eax
add eax, ecx
mov ecx, dword [esp + 0x44]
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xb0], eax
add eax, edx
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x114]
lea eax, [esp + eax + 0x270]
mov dword [esp + 0xb4], eax
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x15c]
push eax
mov eax, dword [esp + 0x100]
push ecx
mov ecx, dword [esp + 0x14c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x90]
mov ecx, eax
mov eax, dword [esp + 0x50]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x78]
add ecx, edx
movsx edx, word [eax + ebx*2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5a9b5b
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5a9b81
cmp ecx, dword [esp + 0x10]
jge 0x5a9afb
mov dword [esp + 0x10], ecx
movzx eax, word [esp + 0x6c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
mov eax, ebx
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a9b81
jb 0x5a9b51
cmp eax, dword [esp + 0x38]
jae 0x5a9b81
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5a9b65
cmp ecx, dword [esp + 0x10]
jge 0x5a9b81
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x5a9bde
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x8c]
and eax, 7
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xa0], eax
add eax, ecx
mov ecx, dword [esp + 0x44]
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xcc], eax
add eax, edx
mov edx, 1
lea eax, [esp + eax + 0x270]
shl edx, cl
mov dword [esp + 0xd8], eax
mov al, byte [eax]
test al, dl
jne 0x5a9d83
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x8c]
and eax, 7
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xa0], eax
add eax, ecx
mov ecx, dword [esp + 0x44]
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xcc], eax
add eax, edx
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x114]
lea eax, [esp + eax + 0x270]
mov dword [esp + 0xd8], eax
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x15c]
push eax
mov eax, dword [esp + 0xe8]
push ecx
mov ecx, dword [esp + 0x134]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x90]
mov ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x78]
add ecx, edx
movsx edx, word [eax + ebx*2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5a9d5d
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5a9d83
cmp ecx, dword [esp + 0x10]
jge 0x5a9cf6
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
and eax, 0xffff
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
mov eax, ebx
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a9d83
jb 0x5a9d53
cmp eax, dword [esp + 0x38]
jae 0x5a9d83
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5a9d67
cmp ecx, dword [esp + 0x10]
jge 0x5a9d83
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x5a9da9
mov ecx, dword [esp + 0x98]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x9c]
mov dl, byte [ecx]
test dl, al
jne 0x5a9f3c
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x124]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x16c]
push eax
mov eax, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0x140]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 + 2]
mov edx, dword [esp + 0x8c]
add ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x44]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5a9f0f
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5a9f3c
cmp ecx, dword [esp + 0x10]
jge 0x5a9e8b
mov dword [esp + 0x10], ecx
movzx ecx, word [esp + 0x30]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x68]
lea eax, [ebx + 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a9f3c
jb 0x5a9ee2
cmp eax, dword [esp + 0x38]
jae 0x5a9f3c
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x5a9f3c
cmp ecx, dword [esp + 0x10]
jge 0x5a9f3c
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5a9f62
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xb8]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5aa0fd
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xb8]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x104]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x14c]
push eax
mov eax, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0x140]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 - 2]
mov edx, dword [esp + 0x8c]
add ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x44]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5aa0d0
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5aa0fd
cmp ecx, dword [esp + 0x10]
jge 0x5aa044
mov dword [esp + 0x10], ecx
movzx ecx, word [esp + 0x30]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov ecx, dword [esp + 0x14]
add ecx, 0xffffffff
and ecx, 0xffff
lea eax, [ebx - 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5aa0fd
jb 0x5aa0a3
cmp eax, dword [esp + 0x38]
jae 0x5aa0fd
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x5aa0fd
cmp ecx, dword [esp + 0x10]
jge 0x5aa0fd
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5aa12c
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0x44]
add edx, eax
mov eax, 1
shl eax, cl
test byte [esp + edx + 0x270], al
jne 0x5aa2a5
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xbc]
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x44]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x120]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x168]
push eax
mov eax, dword [esp + 0xf8]
push ecx
mov ecx, dword [esp + 0x144]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x44]
movsx eax, word [eax + edx*2 + 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5aa27f
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5aa2a5
cmp ecx, dword [esp + 0x10]
jge 0x5aa21c
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 1
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx eax, word [esp + 0x68]
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5aa2a5
jb 0x5aa275
cmp eax, dword [esp + 0x38]
jae 0x5aa2a5
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5aa289
cmp ecx, dword [esp + 0x10]
jge 0x5aa2a5
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x5aa2d4
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xa4]
add eax, ecx
mov ecx, dword [esp + 0x44]
mov edx, 1
shl edx, cl
test byte [esp + eax + 0x270], dl
jne 0x5aa459
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xa4]
add eax, ecx
mov ecx, dword [esp + 0x44]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x108]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0xf0]
push ecx
mov ecx, dword [esp + 0x13c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x44]
movsx eax, word [eax + edx*2 - 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5aa42d
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5aa459
cmp ecx, dword [esp + 0x10]
jge 0x5aa3c3
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
add eax, 0xffffffff
and eax, 0xffff
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5aa459
jb 0x5aa423
cmp eax, dword [esp + 0x38]
jae 0x5aa459
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5aa437
cmp ecx, dword [esp + 0x10]
jge 0x5aa459
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x5aa492
mov ecx, dword [esp + 0xd4]
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x44]
lea eax, [edx + eax*8]
mov edx, 1
shl edx, cl
test byte [esp + eax + 0x270], dl
jne 0x5aa614
mov ecx, dword [esp + 0xd4]
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x44]
lea eax, [edx + eax*8]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x114]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x15c]
push eax
mov eax, dword [esp + 0x104]
push ecx
mov ecx, dword [esp + 0x150]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x84]
mov ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x90]
add ecx, edx
mov edx, dword [esp + 0x5c]
movsx eax, word [eax + edx*2 + 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x8c]
add ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5aa5ee
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5aa614
cmp ecx, dword [esp + 0x10]
jge 0x5aa58b
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x6c]
mov edx, dword [esp + 0x5c]
add eax, 1
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
mov eax, ebx
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5aa614
jb 0x5aa5e4
cmp eax, dword [esp + 0x38]
jae 0x5aa614
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5aa5f8
cmp ecx, dword [esp + 0x10]
jge 0x5aa614
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x5aa64d
mov ecx, dword [esp + 0xdc]
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x44]
lea eax, [edx + eax*8]
mov edx, 1
shl edx, cl
test byte [esp + eax + 0x270], dl
jne 0x5aa7da
mov ecx, dword [esp + 0xdc]
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x44]
lea eax, [edx + eax*8]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x114]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x15c]
push eax
mov eax, dword [esp + 0xe4]
push ecx
mov ecx, dword [esp + 0x130]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x84]
mov ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x90]
add ecx, edx
mov edx, dword [esp + 0x5c]
movsx eax, word [eax + edx*2 - 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x8c]
add ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5aa7b1
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5aa7da
cmp ecx, dword [esp + 0x10]
jge 0x5aa746
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
add ecx, 0xffffffff
shl eax, 0x10
and ecx, 0xffff
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
mov eax, ebx
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5aa7da
jb 0x5aa7a7
cmp eax, dword [esp + 0x38]
jae 0x5aa7da
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5aa7bb
cmp ecx, dword [esp + 0x10]
jge 0x5aa7da
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x5aa800
mov ecx, dword [esp + 0x98]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0xb4]
mov dl, byte [ecx]
test dl, al
jne 0x5aa993
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xb4]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x118]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x160]
push eax
mov eax, dword [esp + 0x100]
push ecx
mov ecx, dword [esp + 0x14c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 + 2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5aa966
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5aa993
cmp ecx, dword [esp + 0x10]
jge 0x5aa8e2
mov dword [esp + 0x10], ecx
movzx eax, word [esp + 0x6c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
lea eax, [ebx + 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5aa993
jb 0x5aa939
cmp eax, dword [esp + 0x38]
jae 0x5aa993
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x5aa993
cmp ecx, dword [esp + 0x10]
jge 0x5aa993
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5aa9b9
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xd8]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5aab4d
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xd8]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x110]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x158]
push eax
mov eax, dword [esp + 0xe8]
push ecx
mov ecx, dword [esp + 0x134]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 - 2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5aab23
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5aab4d
cmp ecx, dword [esp + 0x10]
jge 0x5aaa9b
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
and eax, 0xffff
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
lea eax, [ebx - 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5aab4d
jb 0x5aaaf9
cmp eax, dword [esp + 0x38]
jae 0x5aab4d
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x5aab4d
cmp ecx, dword [esp + 0x10]
jge 0x5aab4d
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5aab73
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xc4]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5aad09
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xc4]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x118]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x160]
push eax
mov eax, dword [esp + 0xf8]
push ecx
mov ecx, dword [esp + 0x144]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 + 2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5aacdc
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5aad09
cmp ecx, dword [esp + 0x10]
jge 0x5aac55
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 1
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
lea eax, [ebx + 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5aad09
jb 0x5aacaf
cmp eax, dword [esp + 0x38]
jae 0x5aad09
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x5aad09
cmp ecx, dword [esp + 0x10]
jge 0x5aad09
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5aad2f
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xd0]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5aaec5
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xd0]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x110]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x158]
push eax
mov eax, dword [esp + 0xf0]
push ecx
mov ecx, dword [esp + 0x13c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 - 2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5aae98
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5aaec5
cmp ecx, dword [esp + 0x10]
jge 0x5aae11
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
lea eax, [ebx - 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5aaec5
jb 0x5aae6b
cmp eax, dword [esp + 0x38]
jae 0x5aaec5
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x5aaec5
cmp ecx, dword [esp + 0x10]
jge 0x5aaec5
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5aaef4
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x44]
add edx, eax
mov eax, 1
shl eax, cl
test byte [esp + edx + 0x270], al
jne 0x5ab06a
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xb0]
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x44]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x120]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x168]
push eax
mov eax, dword [esp + 0x100]
push ecx
mov ecx, dword [esp + 0x14c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x90]
add ecx, edx
mov edx, dword [esp + 0x5c]
movsx eax, word [eax + edx*2 + 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5ab044
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5ab06a
cmp ecx, dword [esp + 0x10]
jge 0x5aafe4
mov dword [esp + 0x10], ecx
movzx eax, word [esp + 0x6c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx eax, word [esp + 0x68]
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ab06a
jb 0x5ab03a
cmp eax, dword [esp + 0x38]
jae 0x5ab06a
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5ab04e
cmp ecx, dword [esp + 0x10]
jge 0x5ab06a
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x5ab099
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xcc]
add eax, ecx
mov ecx, dword [esp + 0x44]
mov edx, 1
shl edx, cl
test byte [esp + eax + 0x270], dl
jne 0x5ab21f
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xcc]
add eax, ecx
mov ecx, dword [esp + 0x44]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x108]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0xe8]
push ecx
mov ecx, dword [esp + 0x134]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x90]
add ecx, edx
mov edx, dword [esp + 0x5c]
movsx eax, word [eax + edx*2 - 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5ab1f6
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5ab21f
cmp ecx, dword [esp + 0x10]
jge 0x5ab188
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
and eax, 0xffff
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
add eax, 0xffffffff
and eax, 0xffff
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ab21f
jb 0x5ab1ec
cmp eax, dword [esp + 0x38]
jae 0x5ab21f
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5ab200
cmp ecx, dword [esp + 0x10]
jge 0x5ab21f
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x5ab245
mov ecx, dword [esp + 0x98]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0xb8]
mov dl, byte [ecx]
test dl, al
jne 0x5ab3e6
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xb8]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x10c]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x154]
push eax
mov eax, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0x140]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 + 2]
mov edx, dword [esp + 0x8c]
add ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x44]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5ab3b6
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5ab3e6
cmp ecx, dword [esp + 0x10]
jge 0x5ab327
mov dword [esp + 0x10], ecx
movzx ecx, word [esp + 0x30]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov ecx, dword [esp + 0x14]
add ecx, 0xffffffff
and ecx, 0xffff
lea eax, [ebx + 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ab3e6
jb 0x5ab386
cmp eax, dword [esp + 0x38]
jae 0x5ab3e6
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x5ab3e6
cmp ecx, dword [esp + 0x10]
jge 0x5ab3e6
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5ab40c
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x9c]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5ab599
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x9c]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x11c]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x164]
push eax
mov eax, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0x140]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 - 2]
mov edx, dword [esp + 0x8c]
add ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x44]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5ab56f
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5ab599
cmp ecx, dword [esp + 0x10]
jge 0x5ab4ee
mov dword [esp + 0x10], ecx
movzx ecx, word [esp + 0x30]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x68]
lea eax, [ebx - 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ab599
jb 0x5ab545
cmp eax, dword [esp + 0x38]
jae 0x5ab599
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x5ab599
cmp ecx, dword [esp + 0x10]
jge 0x5ab599
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5ab5c8
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x44]
add edx, eax
mov eax, 1
shl eax, cl
test byte [esp + edx + 0x270], al
jne 0x5ab744
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa4]
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x44]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x120]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x168]
push eax
mov eax, dword [esp + 0xf0]
push ecx
mov ecx, dword [esp + 0x13c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x44]
movsx eax, word [eax + edx*2 - 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5ab71b
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5ab744
cmp ecx, dword [esp + 0x10]
jge 0x5ab6b8
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx eax, word [esp + 0x68]
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ab744
jb 0x5ab711
cmp eax, dword [esp + 0x38]
jae 0x5ab744
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5ab725
cmp ecx, dword [esp + 0x10]
jge 0x5ab744
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x5ab773
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xbc]
add eax, ecx
mov ecx, dword [esp + 0x44]
mov edx, 1
shl edx, cl
test byte [esp + eax + 0x270], dl
jne 0x5ab8f5
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xbc]
add eax, ecx
mov ecx, dword [esp + 0x44]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x108]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0xf8]
push ecx
mov ecx, dword [esp + 0x144]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x44]
movsx eax, word [eax + edx*2 + 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5ab8cc
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5ab8f5
cmp ecx, dword [esp + 0x10]
jge 0x5ab862
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 1
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
add eax, 0xffffffff
and eax, 0xffff
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ab8f5
jb 0x5ab8c2
cmp eax, dword [esp + 0x38]
jae 0x5ab8f5
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5ab8d6
cmp ecx, dword [esp + 0x10]
jge 0x5ab8f5
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x5ab92e
mov ecx, dword [esp + 0xd4]
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x44]
lea eax, [edx + eax*8]
mov edx, 1
shl edx, cl
test byte [esp + eax + 0x270], dl
jne 0x5abab8
mov ecx, dword [esp + 0xd4]
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x44]
lea eax, [edx + eax*8]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x114]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x15c]
push eax
mov eax, dword [esp + 0xec]
push ecx
mov ecx, dword [esp + 0x138]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x84]
mov ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x90]
add ecx, edx
mov edx, dword [esp + 0x5c]
movsx eax, word [eax + edx*2 - 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x8c]
add ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5aba92
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5abab8
cmp ecx, dword [esp + 0x10]
jge 0x5aba27
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 1
add ecx, 0xffffffff
shl eax, 0x10
and ecx, 0xffff
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
mov eax, ebx
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5abab8
jb 0x5aba88
cmp eax, dword [esp + 0x38]
jae 0x5abab8
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5aba9c
cmp ecx, dword [esp + 0x10]
jge 0x5abab8
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x5abaf1
mov ecx, dword [esp + 0xdc]
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x44]
lea eax, [edx + eax*8]
mov edx, 1
shl edx, cl
test byte [esp + eax + 0x270], dl
jne 0x5abc76
mov ecx, dword [esp + 0xdc]
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x44]
lea eax, [edx + eax*8]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x114]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x15c]
push eax
mov eax, dword [esp + 0xfc]
push ecx
mov ecx, dword [esp + 0x148]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x84]
mov ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x90]
add ecx, edx
mov edx, dword [esp + 0x5c]
movsx eax, word [eax + edx*2 + 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x8c]
add ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5abc4d
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5abc76
cmp ecx, dword [esp + 0x10]
jge 0x5abbea
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x6c]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
mov eax, ebx
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5abc76
jb 0x5abc43
cmp eax, dword [esp + 0x38]
jae 0x5abc76
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5abc57
cmp ecx, dword [esp + 0x10]
jge 0x5abc76
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x5abc9c
mov ecx, dword [esp + 0x94]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0xb4]
mov dl, byte [ecx]
test dl, al
jne 0x5abe29
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xb4]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x110]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x158]
push eax
mov eax, dword [esp + 0x100]
push ecx
mov ecx, dword [esp + 0x14c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 - 2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5abdff
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5abe29
cmp ecx, dword [esp + 0x10]
jge 0x5abd7e
mov dword [esp + 0x10], ecx
movzx eax, word [esp + 0x6c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
lea eax, [ebx - 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5abe29
jb 0x5abdd5
cmp eax, dword [esp + 0x38]
jae 0x5abe29
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x5abe29
cmp ecx, dword [esp + 0x10]
jge 0x5abe29
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5abe4f
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xd8]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5abfe9
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xd8]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x118]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x160]
push eax
mov eax, dword [esp + 0xe8]
push ecx
mov ecx, dword [esp + 0x134]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 + 2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5abfbc
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5abfe9
cmp ecx, dword [esp + 0x10]
jge 0x5abf31
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
and eax, 0xffff
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
lea eax, [ebx + 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5abfe9
jb 0x5abf8f
cmp eax, dword [esp + 0x38]
jae 0x5abfe9
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x5abfe9
cmp ecx, dword [esp + 0x10]
jge 0x5abfe9
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5ac00f
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xd0]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5ac1ab
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xd0]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x118]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x160]
push eax
mov eax, dword [esp + 0xf0]
push ecx
mov ecx, dword [esp + 0x13c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 + 2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5ac17b
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5ac1ab
cmp ecx, dword [esp + 0x10]
jge 0x5ac0f1
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
lea eax, [ebx + 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ac1ab
jb 0x5ac14b
cmp eax, dword [esp + 0x38]
jae 0x5ac1ab
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x5ac1ab
cmp ecx, dword [esp + 0x10]
jge 0x5ac1ab
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5ac1d1
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xc4]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5ac361
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xc4]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x110]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x158]
push eax
mov eax, dword [esp + 0xf8]
push ecx
mov ecx, dword [esp + 0x144]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 - 2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5ac337
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5ac361
cmp ecx, dword [esp + 0x10]
jge 0x5ac2b3
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 1
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
lea eax, [ebx - 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ac361
jb 0x5ac30d
cmp eax, dword [esp + 0x38]
jae 0x5ac361
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x5ac361
cmp ecx, dword [esp + 0x10]
jge 0x5ac361
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5ac390
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xcc]
mov ecx, dword [esp + 0x44]
add edx, eax
mov eax, 1
shl eax, cl
test byte [esp + edx + 0x270], al
jne 0x5ac50d
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xcc]
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x44]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x120]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x168]
push eax
mov eax, dword [esp + 0xe8]
push ecx
mov ecx, dword [esp + 0x134]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x90]
add ecx, edx
mov edx, dword [esp + 0x5c]
movsx eax, word [eax + edx*2 - 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5ac4e7
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5ac50d
cmp ecx, dword [esp + 0x10]
jge 0x5ac480
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
shl ecx, 0x10
and eax, 0xffff
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx eax, word [esp + 0x68]
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ac50d
jb 0x5ac4dd
cmp eax, dword [esp + 0x38]
jae 0x5ac50d
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5ac4f1
cmp ecx, dword [esp + 0x10]
jge 0x5ac50d
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x5ac53c
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xb0]
add eax, ecx
mov ecx, dword [esp + 0x44]
mov edx, 1
shl edx, cl
test byte [esp + eax + 0x270], dl
jne 0x5ac6bb
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xb0]
add eax, ecx
mov ecx, dword [esp + 0x44]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x108]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0x100]
push ecx
mov ecx, dword [esp + 0x14c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x90]
add ecx, edx
mov edx, dword [esp + 0x5c]
movsx eax, word [eax + edx*2 + 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5ac692
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5ac6bb
cmp ecx, dword [esp + 0x10]
jge 0x5ac62b
mov dword [esp + 0x10], ecx
movzx eax, word [esp + 0x6c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
add eax, 0xffffffff
and eax, 0xffff
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.0057ebe0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ac6bb
jb 0x5ac688
cmp eax, dword [esp + 0x38]
jae 0x5ac6bb
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5ac69c
cmp ecx, dword [esp + 0x10]
jge 0x5ac6bb
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x24]
jne 0x5ac6e3
mov ecx, dword [esp + 0x18]
cmp ecx, dword [esp + 0x1c]
jne 0x5ac6e3
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0x20]
jne 0x5ac6e3
cmp ebx, dword [esp + 0x28]
je 0x5ac799
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x70]
push edx
push edi
push ecx
push eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 0x38]
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x108]
push edx
lea eax, [esp + 0x88c]
push eax
mov dword [esp + 0x110], edi
mov dword [esp + 0x134], edi
call ecx
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x40]
push edx
mov dword [esp + 0x15c], eax
push edi
mov eax, ebx
push eax
mov eax, dword [esp + 0xbc]
mov edx, dword [eax + 0x38]
push ecx
push edx
mov edx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea eax, [esp + 0x14c]
push eax
lea ecx, [esp + 0x11ac]
push ecx
call edx
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x88]
add eax, 1
add esp, 0x40
cmp eax, 8
mov dword [esp + 0x48], eax
jl 0x5a8932
movzx ecx, word [esp + 0x24]
movzx edx, word [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov word [eax + 0x4c], cx
movzx ecx, word [esp + 0x20]
mov word [eax + 0x4e], dx
movzx edx, word [esp + 0x28]
mov eax, dword [esp + 0x90]
mov word [eax + 0x4c], cx
mov word [eax + 0x4e], dx
mov ecx, dword [esp + 0x167c]
pop edi
pop ebx
xor ecx, esp
call fcn.004e3dc3
mov esp, ebp
pop ebp
ret