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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x1678
call fcn.004fa7e0
mov eax, dword [0x628560]
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 + 0x5f36b8]
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 + 0x5f3b80]
add edi, edi
lea eax, [esi + eax*4 + 0x3840]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x5c], edi
mov edi, dword [ecx*8 + 0x5f3538]
mov ecx, dword [ecx*8 + 0x5f353c]
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 0x5b71dd
mov ebx, ecx
jmp 0x5b71e3
cmp eax, ebx
jg 0x5b71e3
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 0x5b7201
mov eax, ecx
jmp 0x5b720d
mov edx, dword [esi + 0x1f3c]
cmp eax, edx
jle 0x5b720d
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 0x5b7230
mov edx, ecx
jmp 0x5b723c
mov edx, dword [esi + 0x1f3c]
cmp eax, edx
jg 0x5b723c
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 0x5b7266
mov ecx, dword [esi + 0x1f3c]
cmp ebx, ecx
jg 0x5b7266
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 0x5bb358
cmp ebx, eax
jg 0x5bb358
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 0x5b74af
cmp eax, 0x1000000
jge 0x5b74ba
cmp eax, 0x10000000
jge 0x5b744d
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.0058d7c0
add esp, 0x10
cmp edx, 0x10000000
ja 0x5b74ba
jb 0x5b74a5
test eax, eax
jae 0x5b74ba
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5b74ba
cmp eax, 0x10000000
jge 0x5b74ba
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 0x5b7a36
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 0x5b7bf3
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 0x5b7bde
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 0x5b7bf3
cmp ecx, dword [esp + 0x10]
jge 0x5b7b6d
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b7bf3
jb 0x5b7bc9
cmp eax, dword [esp + 0x38]
jae 0x5b7bf3
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], eax
jmp 0x5b7bf3
cmp ecx, dword [esp + 0x10]
jge 0x5b7bf3
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5b7c20
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 0x5b7d83
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 0x5b7d71
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 0x5b7d83
cmp ecx, dword [esp + 0x10]
jge 0x5b7d08
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b7d83
jb 0x5b7d5f
cmp eax, dword [esp + 0x38]
jae 0x5b7d83
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], eax
jmp 0x5b7d83
cmp ecx, dword [esp + 0x10]
jge 0x5b7d83
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5b7dc9
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 0x5b7f48
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 0x5b7f32
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 0x5b7f48
cmp ecx, dword [esp + 0x10]
jge 0x5b7eca
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b7f48
jb 0x5b7f20
cmp eax, dword [esp + 0x38]
jae 0x5b7f48
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], eax
jmp 0x5b7f44
cmp ecx, dword [esp + 0x10]
jge 0x5b7f48
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 0x5b7f8c
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 0x5b8116
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 0x5b80fd
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 0x5b8116
cmp ecx, dword [esp + 0x10]
jge 0x5b808b
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b8116
jb 0x5b80e8
cmp eax, dword [esp + 0x38]
jae 0x5b8116
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], eax
jmp 0x5b8112
cmp ecx, dword [esp + 0x10]
jge 0x5b8116
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 0x5b816d
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 0x5b8310
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 0x5b82f2
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 0x5b8310
cmp ecx, dword [esp + 0x10]
jge 0x5b827f
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b8310
jb 0x5b82d8
cmp eax, dword [esp + 0x38]
jae 0x5b8310
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 0x5b830c
cmp ecx, dword [esp + 0x10]
jge 0x5b8310
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 0x5b836a
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 0x5b8516
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 0x5b84f5
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 0x5b8516
cmp ecx, dword [esp + 0x10]
jge 0x5b847f
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b8516
jb 0x5b84d8
cmp eax, dword [esp + 0x38]
jae 0x5b8516
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 0x5b8512
cmp ecx, dword [esp + 0x10]
jge 0x5b8516
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 0x5b8573
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 0x5b8711
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 0x5b86eb
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 0x5b8711
cmp ecx, dword [esp + 0x10]
jge 0x5b868b
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b8711
jb 0x5b86e1
cmp eax, dword [esp + 0x38]
jae 0x5b8711
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5b86f5
cmp ecx, dword [esp + 0x10]
jge 0x5b8711
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 0x5b876e
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 0x5b8913
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 0x5b88ed
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 0x5b8913
cmp ecx, dword [esp + 0x10]
jge 0x5b8886
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b8913
jb 0x5b88e3
cmp eax, dword [esp + 0x38]
jae 0x5b8913
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5b88f7
cmp ecx, dword [esp + 0x10]
jge 0x5b8913
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 0x5b8939
mov ecx, dword [esp + 0x98]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x9c]
mov dl, byte [ecx]
test dl, al
jne 0x5b8acc
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 0x5b8a9f
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 0x5b8acc
cmp ecx, dword [esp + 0x10]
jge 0x5b8a1b
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b8acc
jb 0x5b8a72
cmp eax, dword [esp + 0x38]
jae 0x5b8acc
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 0x5b8acc
cmp ecx, dword [esp + 0x10]
jge 0x5b8acc
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 0x5b8af2
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xb8]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5b8c8d
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 0x5b8c60
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 0x5b8c8d
cmp ecx, dword [esp + 0x10]
jge 0x5b8bd4
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b8c8d
jb 0x5b8c33
cmp eax, dword [esp + 0x38]
jae 0x5b8c8d
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 0x5b8c8d
cmp ecx, dword [esp + 0x10]
jge 0x5b8c8d
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 0x5b8cbc
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 0x5b8e35
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 0x5b8e0f
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 0x5b8e35
cmp ecx, dword [esp + 0x10]
jge 0x5b8dac
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b8e35
jb 0x5b8e05
cmp eax, dword [esp + 0x38]
jae 0x5b8e35
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5b8e19
cmp ecx, dword [esp + 0x10]
jge 0x5b8e35
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 0x5b8e64
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 0x5b8fe9
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 0x5b8fbd
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 0x5b8fe9
cmp ecx, dword [esp + 0x10]
jge 0x5b8f53
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b8fe9
jb 0x5b8fb3
cmp eax, dword [esp + 0x38]
jae 0x5b8fe9
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5b8fc7
cmp ecx, dword [esp + 0x10]
jge 0x5b8fe9
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 0x5b9022
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 0x5b91a4
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 0x5b917e
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 0x5b91a4
cmp ecx, dword [esp + 0x10]
jge 0x5b911b
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b91a4
jb 0x5b9174
cmp eax, dword [esp + 0x38]
jae 0x5b91a4
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5b9188
cmp ecx, dword [esp + 0x10]
jge 0x5b91a4
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 0x5b91dd
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 0x5b936a
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 0x5b9341
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 0x5b936a
cmp ecx, dword [esp + 0x10]
jge 0x5b92d6
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b936a
jb 0x5b9337
cmp eax, dword [esp + 0x38]
jae 0x5b936a
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5b934b
cmp ecx, dword [esp + 0x10]
jge 0x5b936a
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 0x5b9390
mov ecx, dword [esp + 0x98]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0xb4]
mov dl, byte [ecx]
test dl, al
jne 0x5b9523
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 0x5b94f6
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 0x5b9523
cmp ecx, dword [esp + 0x10]
jge 0x5b9472
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b9523
jb 0x5b94c9
cmp eax, dword [esp + 0x38]
jae 0x5b9523
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 0x5b9523
cmp ecx, dword [esp + 0x10]
jge 0x5b9523
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 0x5b9549
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xd8]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5b96dd
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 0x5b96b3
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 0x5b96dd
cmp ecx, dword [esp + 0x10]
jge 0x5b962b
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b96dd
jb 0x5b9689
cmp eax, dword [esp + 0x38]
jae 0x5b96dd
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 0x5b96dd
cmp ecx, dword [esp + 0x10]
jge 0x5b96dd
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 0x5b9703
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xc4]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5b9899
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 0x5b986c
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 0x5b9899
cmp ecx, dword [esp + 0x10]
jge 0x5b97e5
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b9899
jb 0x5b983f
cmp eax, dword [esp + 0x38]
jae 0x5b9899
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 0x5b9899
cmp ecx, dword [esp + 0x10]
jge 0x5b9899
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 0x5b98bf
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xd0]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5b9a55
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 0x5b9a28
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 0x5b9a55
cmp ecx, dword [esp + 0x10]
jge 0x5b99a1
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b9a55
jb 0x5b99fb
cmp eax, dword [esp + 0x38]
jae 0x5b9a55
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 0x5b9a55
cmp ecx, dword [esp + 0x10]
jge 0x5b9a55
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 0x5b9a84
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 0x5b9bfa
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 0x5b9bd4
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 0x5b9bfa
cmp ecx, dword [esp + 0x10]
jge 0x5b9b74
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b9bfa
jb 0x5b9bca
cmp eax, dword [esp + 0x38]
jae 0x5b9bfa
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5b9bde
cmp ecx, dword [esp + 0x10]
jge 0x5b9bfa
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 0x5b9c29
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 0x5b9daf
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 0x5b9d86
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 0x5b9daf
cmp ecx, dword [esp + 0x10]
jge 0x5b9d18
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b9daf
jb 0x5b9d7c
cmp eax, dword [esp + 0x38]
jae 0x5b9daf
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5b9d90
cmp ecx, dword [esp + 0x10]
jge 0x5b9daf
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 0x5b9dd5
mov ecx, dword [esp + 0x98]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0xb8]
mov dl, byte [ecx]
test dl, al
jne 0x5b9f76
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 0x5b9f46
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 0x5b9f76
cmp ecx, dword [esp + 0x10]
jge 0x5b9eb7
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5b9f76
jb 0x5b9f16
cmp eax, dword [esp + 0x38]
jae 0x5b9f76
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 0x5b9f76
cmp ecx, dword [esp + 0x10]
jge 0x5b9f76
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 0x5b9f9c
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x9c]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5ba129
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 0x5ba0ff
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 0x5ba129
cmp ecx, dword [esp + 0x10]
jge 0x5ba07e
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ba129
jb 0x5ba0d5
cmp eax, dword [esp + 0x38]
jae 0x5ba129
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 0x5ba129
cmp ecx, dword [esp + 0x10]
jge 0x5ba129
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 0x5ba158
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 0x5ba2d4
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 0x5ba2ab
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 0x5ba2d4
cmp ecx, dword [esp + 0x10]
jge 0x5ba248
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ba2d4
jb 0x5ba2a1
cmp eax, dword [esp + 0x38]
jae 0x5ba2d4
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5ba2b5
cmp ecx, dword [esp + 0x10]
jge 0x5ba2d4
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 0x5ba303
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 0x5ba485
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 0x5ba45c
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 0x5ba485
cmp ecx, dword [esp + 0x10]
jge 0x5ba3f2
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ba485
jb 0x5ba452
cmp eax, dword [esp + 0x38]
jae 0x5ba485
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5ba466
cmp ecx, dword [esp + 0x10]
jge 0x5ba485
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 0x5ba4be
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 0x5ba648
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 0x5ba622
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 0x5ba648
cmp ecx, dword [esp + 0x10]
jge 0x5ba5b7
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ba648
jb 0x5ba618
cmp eax, dword [esp + 0x38]
jae 0x5ba648
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5ba62c
cmp ecx, dword [esp + 0x10]
jge 0x5ba648
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 0x5ba681
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 0x5ba806
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 0x5ba7dd
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 0x5ba806
cmp ecx, dword [esp + 0x10]
jge 0x5ba77a
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ba806
jb 0x5ba7d3
cmp eax, dword [esp + 0x38]
jae 0x5ba806
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5ba7e7
cmp ecx, dword [esp + 0x10]
jge 0x5ba806
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 0x5ba82c
mov ecx, dword [esp + 0x94]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0xb4]
mov dl, byte [ecx]
test dl, al
jne 0x5ba9b9
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 0x5ba98f
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 0x5ba9b9
cmp ecx, dword [esp + 0x10]
jge 0x5ba90e
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ba9b9
jb 0x5ba965
cmp eax, dword [esp + 0x38]
jae 0x5ba9b9
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 0x5ba9b9
cmp ecx, dword [esp + 0x10]
jge 0x5ba9b9
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 0x5ba9df
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xd8]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5bab79
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 0x5bab4c
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 0x5bab79
cmp ecx, dword [esp + 0x10]
jge 0x5baac1
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5bab79
jb 0x5bab1f
cmp eax, dword [esp + 0x38]
jae 0x5bab79
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 0x5bab79
cmp ecx, dword [esp + 0x10]
jge 0x5bab79
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 0x5bab9f
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xd0]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5bad3b
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 0x5bad0b
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 0x5bad3b
cmp ecx, dword [esp + 0x10]
jge 0x5bac81
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5bad3b
jb 0x5bacdb
cmp eax, dword [esp + 0x38]
jae 0x5bad3b
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 0x5bad3b
cmp ecx, dword [esp + 0x10]
jge 0x5bad3b
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 0x5bad61
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xc4]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5baef1
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 0x5baec7
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 0x5baef1
cmp ecx, dword [esp + 0x10]
jge 0x5bae43
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5baef1
jb 0x5bae9d
cmp eax, dword [esp + 0x38]
jae 0x5baef1
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 0x5baef1
cmp ecx, dword [esp + 0x10]
jge 0x5baef1
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 0x5baf20
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 0x5bb09d
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 0x5bb077
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 0x5bb09d
cmp ecx, dword [esp + 0x10]
jge 0x5bb010
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5bb09d
jb 0x5bb06d
cmp eax, dword [esp + 0x38]
jae 0x5bb09d
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5bb081
cmp ecx, dword [esp + 0x10]
jge 0x5bb09d
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 0x5bb0cc
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 0x5bb24b
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 0x5bb222
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 0x5bb24b
cmp ecx, dword [esp + 0x10]
jge 0x5bb1bb
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.0058d7c0
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5bb24b
jb 0x5bb218
cmp eax, dword [esp + 0x38]
jae 0x5bb24b
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5bb22c
cmp ecx, dword [esp + 0x10]
jge 0x5bb24b
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 0x5bb273
mov ecx, dword [esp + 0x18]
cmp ecx, dword [esp + 0x1c]
jne 0x5bb273
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0x20]
jne 0x5bb273
cmp ebx, dword [esp + 0x28]
je 0x5bb329
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 0x5b74c2
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.004f2a78
mov esp, ebp
pop ebp
ret