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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x1678
call fcn.004fa640
mov eax, dword [0x629560]
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 + 0x5f3690]
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 + 0x5f3b58]
add edi, edi
lea eax, [esi + eax*4 + 0x3840]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x5c], edi
mov edi, dword [ecx*8 + 0x5f3510]
mov ecx, dword [ecx*8 + 0x5f3514]
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 0x5b6f9d
mov ebx, ecx
jmp 0x5b6fa3
cmp eax, ebx
jg 0x5b6fa3
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 0x5b6fc1
mov eax, ecx
jmp 0x5b6fcd
mov edx, dword [esi + 0x1f3c]
cmp eax, edx
jle 0x5b6fcd
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 0x5b6ff0
mov edx, ecx
jmp 0x5b6ffc
mov edx, dword [esi + 0x1f3c]
cmp eax, edx
jg 0x5b6ffc
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 0x5b7026
mov ecx, dword [esi + 0x1f3c]
cmp ebx, ecx
jg 0x5b7026
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 0x5bb118
cmp ebx, eax
jg 0x5bb118
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 0x5b726f
cmp eax, 0x1000000
jge 0x5b727a
cmp eax, 0x10000000
jge 0x5b720d
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.0058d580
add esp, 0x10
cmp edx, 0x10000000
ja 0x5b727a
jb 0x5b7265
test eax, eax
jae 0x5b727a
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5b727a
cmp eax, 0x10000000
jge 0x5b727a
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 0x5b77f6
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 0x5b79b3
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 0x5b799e
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 0x5b79b3
cmp ecx, dword [esp + 0x10]
jge 0x5b792d
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b79b3
jb 0x5b7989
cmp eax, dword [esp + 0x38]
jae 0x5b79b3
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], eax
jmp 0x5b79b3
cmp ecx, dword [esp + 0x10]
jge 0x5b79b3
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5b79e0
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 0x5b7b43
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 0x5b7b31
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 0x5b7b43
cmp ecx, dword [esp + 0x10]
jge 0x5b7ac8
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b7b43
jb 0x5b7b1f
cmp eax, dword [esp + 0x38]
jae 0x5b7b43
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], eax
jmp 0x5b7b43
cmp ecx, dword [esp + 0x10]
jge 0x5b7b43
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5b7b89
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 0x5b7d08
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 0x5b7cf2
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 0x5b7d08
cmp ecx, dword [esp + 0x10]
jge 0x5b7c8a
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b7d08
jb 0x5b7ce0
cmp eax, dword [esp + 0x38]
jae 0x5b7d08
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], eax
jmp 0x5b7d04
cmp ecx, dword [esp + 0x10]
jge 0x5b7d08
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 0x5b7d4c
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 0x5b7ed6
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 0x5b7ebd
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 0x5b7ed6
cmp ecx, dword [esp + 0x10]
jge 0x5b7e4b
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b7ed6
jb 0x5b7ea8
cmp eax, dword [esp + 0x38]
jae 0x5b7ed6
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], eax
jmp 0x5b7ed2
cmp ecx, dword [esp + 0x10]
jge 0x5b7ed6
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 0x5b7f2d
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 0x5b80d0
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 0x5b80b2
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 0x5b80d0
cmp ecx, dword [esp + 0x10]
jge 0x5b803f
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b80d0
jb 0x5b8098
cmp eax, dword [esp + 0x38]
jae 0x5b80d0
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 0x5b80cc
cmp ecx, dword [esp + 0x10]
jge 0x5b80d0
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 0x5b812a
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 0x5b82d6
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 0x5b82b5
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 0x5b82d6
cmp ecx, dword [esp + 0x10]
jge 0x5b823f
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b82d6
jb 0x5b8298
cmp eax, dword [esp + 0x38]
jae 0x5b82d6
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 0x5b82d2
cmp ecx, dword [esp + 0x10]
jge 0x5b82d6
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 0x5b8333
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 0x5b84d1
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 0x5b84ab
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 0x5b84d1
cmp ecx, dword [esp + 0x10]
jge 0x5b844b
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b84d1
jb 0x5b84a1
cmp eax, dword [esp + 0x38]
jae 0x5b84d1
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5b84b5
cmp ecx, dword [esp + 0x10]
jge 0x5b84d1
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 0x5b852e
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 0x5b86d3
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 0x5b86ad
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 0x5b86d3
cmp ecx, dword [esp + 0x10]
jge 0x5b8646
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b86d3
jb 0x5b86a3
cmp eax, dword [esp + 0x38]
jae 0x5b86d3
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5b86b7
cmp ecx, dword [esp + 0x10]
jge 0x5b86d3
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 0x5b86f9
mov ecx, dword [esp + 0x98]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x9c]
mov dl, byte [ecx]
test dl, al
jne 0x5b888c
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 0x5b885f
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 0x5b888c
cmp ecx, dword [esp + 0x10]
jge 0x5b87db
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b888c
jb 0x5b8832
cmp eax, dword [esp + 0x38]
jae 0x5b888c
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 0x5b888c
cmp ecx, dword [esp + 0x10]
jge 0x5b888c
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 0x5b88b2
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xb8]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5b8a4d
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 0x5b8a20
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 0x5b8a4d
cmp ecx, dword [esp + 0x10]
jge 0x5b8994
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b8a4d
jb 0x5b89f3
cmp eax, dword [esp + 0x38]
jae 0x5b8a4d
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 0x5b8a4d
cmp ecx, dword [esp + 0x10]
jge 0x5b8a4d
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 0x5b8a7c
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 0x5b8bf5
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 0x5b8bcf
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 0x5b8bf5
cmp ecx, dword [esp + 0x10]
jge 0x5b8b6c
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b8bf5
jb 0x5b8bc5
cmp eax, dword [esp + 0x38]
jae 0x5b8bf5
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5b8bd9
cmp ecx, dword [esp + 0x10]
jge 0x5b8bf5
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 0x5b8c24
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 0x5b8da9
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 0x5b8d7d
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 0x5b8da9
cmp ecx, dword [esp + 0x10]
jge 0x5b8d13
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b8da9
jb 0x5b8d73
cmp eax, dword [esp + 0x38]
jae 0x5b8da9
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5b8d87
cmp ecx, dword [esp + 0x10]
jge 0x5b8da9
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 0x5b8de2
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 0x5b8f64
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 0x5b8f3e
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 0x5b8f64
cmp ecx, dword [esp + 0x10]
jge 0x5b8edb
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b8f64
jb 0x5b8f34
cmp eax, dword [esp + 0x38]
jae 0x5b8f64
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5b8f48
cmp ecx, dword [esp + 0x10]
jge 0x5b8f64
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 0x5b8f9d
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 0x5b912a
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 0x5b9101
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 0x5b912a
cmp ecx, dword [esp + 0x10]
jge 0x5b9096
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b912a
jb 0x5b90f7
cmp eax, dword [esp + 0x38]
jae 0x5b912a
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5b910b
cmp ecx, dword [esp + 0x10]
jge 0x5b912a
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 0x5b9150
mov ecx, dword [esp + 0x98]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0xb4]
mov dl, byte [ecx]
test dl, al
jne 0x5b92e3
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 0x5b92b6
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 0x5b92e3
cmp ecx, dword [esp + 0x10]
jge 0x5b9232
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b92e3
jb 0x5b9289
cmp eax, dword [esp + 0x38]
jae 0x5b92e3
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 0x5b92e3
cmp ecx, dword [esp + 0x10]
jge 0x5b92e3
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 0x5b9309
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xd8]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5b949d
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 0x5b9473
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 0x5b949d
cmp ecx, dword [esp + 0x10]
jge 0x5b93eb
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b949d
jb 0x5b9449
cmp eax, dword [esp + 0x38]
jae 0x5b949d
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 0x5b949d
cmp ecx, dword [esp + 0x10]
jge 0x5b949d
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 0x5b94c3
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xc4]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5b9659
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 0x5b962c
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 0x5b9659
cmp ecx, dword [esp + 0x10]
jge 0x5b95a5
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b9659
jb 0x5b95ff
cmp eax, dword [esp + 0x38]
jae 0x5b9659
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 0x5b9659
cmp ecx, dword [esp + 0x10]
jge 0x5b9659
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 0x5b967f
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xd0]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5b9815
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 0x5b97e8
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 0x5b9815
cmp ecx, dword [esp + 0x10]
jge 0x5b9761
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b9815
jb 0x5b97bb
cmp eax, dword [esp + 0x38]
jae 0x5b9815
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 0x5b9815
cmp ecx, dword [esp + 0x10]
jge 0x5b9815
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 0x5b9844
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 0x5b99ba
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 0x5b9994
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 0x5b99ba
cmp ecx, dword [esp + 0x10]
jge 0x5b9934
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b99ba
jb 0x5b998a
cmp eax, dword [esp + 0x38]
jae 0x5b99ba
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5b999e
cmp ecx, dword [esp + 0x10]
jge 0x5b99ba
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 0x5b99e9
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 0x5b9b6f
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 0x5b9b46
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 0x5b9b6f
cmp ecx, dword [esp + 0x10]
jge 0x5b9ad8
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b9b6f
jb 0x5b9b3c
cmp eax, dword [esp + 0x38]
jae 0x5b9b6f
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5b9b50
cmp ecx, dword [esp + 0x10]
jge 0x5b9b6f
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 0x5b9b95
mov ecx, dword [esp + 0x98]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0xb8]
mov dl, byte [ecx]
test dl, al
jne 0x5b9d36
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 0x5b9d06
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 0x5b9d36
cmp ecx, dword [esp + 0x10]
jge 0x5b9c77
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b9d36
jb 0x5b9cd6
cmp eax, dword [esp + 0x38]
jae 0x5b9d36
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 0x5b9d36
cmp ecx, dword [esp + 0x10]
jge 0x5b9d36
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 0x5b9d5c
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x9c]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5b9ee9
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 0x5b9ebf
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 0x5b9ee9
cmp ecx, dword [esp + 0x10]
jge 0x5b9e3e
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b9ee9
jb 0x5b9e95
cmp eax, dword [esp + 0x38]
jae 0x5b9ee9
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 0x5b9ee9
cmp ecx, dword [esp + 0x10]
jge 0x5b9ee9
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 0x5b9f18
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 0x5ba094
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 0x5ba06b
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 0x5ba094
cmp ecx, dword [esp + 0x10]
jge 0x5ba008
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ba094
jb 0x5ba061
cmp eax, dword [esp + 0x38]
jae 0x5ba094
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5ba075
cmp ecx, dword [esp + 0x10]
jge 0x5ba094
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 0x5ba0c3
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 0x5ba245
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 0x5ba21c
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 0x5ba245
cmp ecx, dword [esp + 0x10]
jge 0x5ba1b2
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ba245
jb 0x5ba212
cmp eax, dword [esp + 0x38]
jae 0x5ba245
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5ba226
cmp ecx, dword [esp + 0x10]
jge 0x5ba245
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 0x5ba27e
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 0x5ba408
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 0x5ba3e2
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 0x5ba408
cmp ecx, dword [esp + 0x10]
jge 0x5ba377
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ba408
jb 0x5ba3d8
cmp eax, dword [esp + 0x38]
jae 0x5ba408
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5ba3ec
cmp ecx, dword [esp + 0x10]
jge 0x5ba408
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 0x5ba441
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 0x5ba5c6
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 0x5ba59d
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 0x5ba5c6
cmp ecx, dword [esp + 0x10]
jge 0x5ba53a
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ba5c6
jb 0x5ba593
cmp eax, dword [esp + 0x38]
jae 0x5ba5c6
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5ba5a7
cmp ecx, dword [esp + 0x10]
jge 0x5ba5c6
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 0x5ba5ec
mov ecx, dword [esp + 0x94]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0xb4]
mov dl, byte [ecx]
test dl, al
jne 0x5ba779
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 0x5ba74f
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 0x5ba779
cmp ecx, dword [esp + 0x10]
jge 0x5ba6ce
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ba779
jb 0x5ba725
cmp eax, dword [esp + 0x38]
jae 0x5ba779
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 0x5ba779
cmp ecx, dword [esp + 0x10]
jge 0x5ba779
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 0x5ba79f
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xd8]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5ba939
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 0x5ba90c
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 0x5ba939
cmp ecx, dword [esp + 0x10]
jge 0x5ba881
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ba939
jb 0x5ba8df
cmp eax, dword [esp + 0x38]
jae 0x5ba939
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 0x5ba939
cmp ecx, dword [esp + 0x10]
jge 0x5ba939
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 0x5ba95f
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xd0]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5baafb
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 0x5baacb
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 0x5baafb
cmp ecx, dword [esp + 0x10]
jge 0x5baa41
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5baafb
jb 0x5baa9b
cmp eax, dword [esp + 0x38]
jae 0x5baafb
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 0x5baafb
cmp ecx, dword [esp + 0x10]
jge 0x5baafb
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 0x5bab21
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xc4]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5bacb1
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 0x5bac87
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 0x5bacb1
cmp ecx, dword [esp + 0x10]
jge 0x5bac03
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5bacb1
jb 0x5bac5d
cmp eax, dword [esp + 0x38]
jae 0x5bacb1
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 0x5bacb1
cmp ecx, dword [esp + 0x10]
jge 0x5bacb1
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 0x5bace0
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 0x5bae5d
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 0x5bae37
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 0x5bae5d
cmp ecx, dword [esp + 0x10]
jge 0x5badd0
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5bae5d
jb 0x5bae2d
cmp eax, dword [esp + 0x38]
jae 0x5bae5d
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5bae41
cmp ecx, dword [esp + 0x10]
jge 0x5bae5d
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 0x5bae8c
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 0x5bb00b
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 0x5bafe2
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 0x5bb00b
cmp ecx, dword [esp + 0x10]
jge 0x5baf7b
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.0058d580
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5bb00b
jb 0x5bafd8
cmp eax, dword [esp + 0x38]
jae 0x5bb00b
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5bafec
cmp ecx, dword [esp + 0x10]
jge 0x5bb00b
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 0x5bb033
mov ecx, dword [esp + 0x18]
cmp ecx, dword [esp + 0x1c]
jne 0x5bb033
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0x20]
jne 0x5bb033
cmp ebx, dword [esp + 0x28]
je 0x5bb0e9
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 0x5b7282
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.004f2719
mov esp, ebp
pop ebp
ret