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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x1678
call fcn.004eb090
mov eax, dword [0x617560]
xor eax, esp
mov dword [esp + 0x1674], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
shl ecx, 4
mov dword [esp + 0x88], eax
mov eax, dword [ecx + 0x5e3658]
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 + 0x5e3b20]
add edi, edi
lea eax, [esi + eax*4 + 0x3840]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x5c], edi
mov edi, dword [ecx*8 + 0x5e34d8]
mov ecx, dword [ecx*8 + 0x5e34dc]
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 0x5a7dcd
mov ebx, ecx
jmp 0x5a7dd3
cmp eax, ebx
jg 0x5a7dd3
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 0x5a7df1
mov eax, ecx
jmp 0x5a7dfd
mov edx, dword [esi + 0x1f3c]
cmp eax, edx
jle 0x5a7dfd
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 0x5a7e20
mov edx, ecx
jmp 0x5a7e2c
mov edx, dword [esi + 0x1f3c]
cmp eax, edx
jg 0x5a7e2c
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 0x5a7e56
mov ecx, dword [esi + 0x1f3c]
cmp ebx, ecx
jg 0x5a7e56
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 0x5abf48
cmp ebx, eax
jg 0x5abf48
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 0x5a809f
cmp eax, 0x1000000
jge 0x5a80aa
cmp eax, 0x10000000
jge 0x5a803d
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.0057e360
add esp, 0x10
cmp edx, 0x10000000
ja 0x5a80aa
jb 0x5a8095
test eax, eax
jae 0x5a80aa
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5a80aa
cmp eax, 0x10000000
jge 0x5a80aa
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 0x5a8626
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 0x5a87e3
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 0x5a87ce
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 0x5a87e3
cmp ecx, dword [esp + 0x10]
jge 0x5a875d
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a87e3
jb 0x5a87b9
cmp eax, dword [esp + 0x38]
jae 0x5a87e3
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], eax
jmp 0x5a87e3
cmp ecx, dword [esp + 0x10]
jge 0x5a87e3
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5a8810
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 0x5a8973
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 0x5a8961
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 0x5a8973
cmp ecx, dword [esp + 0x10]
jge 0x5a88f8
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a8973
jb 0x5a894f
cmp eax, dword [esp + 0x38]
jae 0x5a8973
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], eax
jmp 0x5a8973
cmp ecx, dword [esp + 0x10]
jge 0x5a8973
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5a89b9
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 0x5a8b38
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 0x5a8b22
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 0x5a8b38
cmp ecx, dword [esp + 0x10]
jge 0x5a8aba
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a8b38
jb 0x5a8b10
cmp eax, dword [esp + 0x38]
jae 0x5a8b38
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], eax
jmp 0x5a8b34
cmp ecx, dword [esp + 0x10]
jge 0x5a8b38
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 0x5a8b7c
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 0x5a8d06
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 0x5a8ced
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 0x5a8d06
cmp ecx, dword [esp + 0x10]
jge 0x5a8c7b
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a8d06
jb 0x5a8cd8
cmp eax, dword [esp + 0x38]
jae 0x5a8d06
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], eax
jmp 0x5a8d02
cmp ecx, dword [esp + 0x10]
jge 0x5a8d06
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 0x5a8d5d
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 0x5a8f00
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 0x5a8ee2
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 0x5a8f00
cmp ecx, dword [esp + 0x10]
jge 0x5a8e6f
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a8f00
jb 0x5a8ec8
cmp eax, dword [esp + 0x38]
jae 0x5a8f00
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 0x5a8efc
cmp ecx, dword [esp + 0x10]
jge 0x5a8f00
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 0x5a8f5a
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 0x5a9106
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 0x5a90e5
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 0x5a9106
cmp ecx, dword [esp + 0x10]
jge 0x5a906f
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a9106
jb 0x5a90c8
cmp eax, dword [esp + 0x38]
jae 0x5a9106
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 0x5a9102
cmp ecx, dword [esp + 0x10]
jge 0x5a9106
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 0x5a9163
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 0x5a9301
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 0x5a92db
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 0x5a9301
cmp ecx, dword [esp + 0x10]
jge 0x5a927b
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a9301
jb 0x5a92d1
cmp eax, dword [esp + 0x38]
jae 0x5a9301
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5a92e5
cmp ecx, dword [esp + 0x10]
jge 0x5a9301
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 0x5a935e
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 0x5a9503
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 0x5a94dd
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 0x5a9503
cmp ecx, dword [esp + 0x10]
jge 0x5a9476
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a9503
jb 0x5a94d3
cmp eax, dword [esp + 0x38]
jae 0x5a9503
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5a94e7
cmp ecx, dword [esp + 0x10]
jge 0x5a9503
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 0x5a9529
mov ecx, dword [esp + 0x98]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x9c]
mov dl, byte [ecx]
test dl, al
jne 0x5a96bc
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 0x5a968f
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 0x5a96bc
cmp ecx, dword [esp + 0x10]
jge 0x5a960b
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a96bc
jb 0x5a9662
cmp eax, dword [esp + 0x38]
jae 0x5a96bc
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 0x5a96bc
cmp ecx, dword [esp + 0x10]
jge 0x5a96bc
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 0x5a96e2
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xb8]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5a987d
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 0x5a9850
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 0x5a987d
cmp ecx, dword [esp + 0x10]
jge 0x5a97c4
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a987d
jb 0x5a9823
cmp eax, dword [esp + 0x38]
jae 0x5a987d
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 0x5a987d
cmp ecx, dword [esp + 0x10]
jge 0x5a987d
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 0x5a98ac
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 0x5a9a25
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 0x5a99ff
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 0x5a9a25
cmp ecx, dword [esp + 0x10]
jge 0x5a999c
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a9a25
jb 0x5a99f5
cmp eax, dword [esp + 0x38]
jae 0x5a9a25
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5a9a09
cmp ecx, dword [esp + 0x10]
jge 0x5a9a25
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 0x5a9a54
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 0x5a9bd9
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 0x5a9bad
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 0x5a9bd9
cmp ecx, dword [esp + 0x10]
jge 0x5a9b43
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a9bd9
jb 0x5a9ba3
cmp eax, dword [esp + 0x38]
jae 0x5a9bd9
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5a9bb7
cmp ecx, dword [esp + 0x10]
jge 0x5a9bd9
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 0x5a9c12
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 0x5a9d94
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 0x5a9d6e
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 0x5a9d94
cmp ecx, dword [esp + 0x10]
jge 0x5a9d0b
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a9d94
jb 0x5a9d64
cmp eax, dword [esp + 0x38]
jae 0x5a9d94
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5a9d78
cmp ecx, dword [esp + 0x10]
jge 0x5a9d94
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 0x5a9dcd
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 0x5a9f5a
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 0x5a9f31
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 0x5a9f5a
cmp ecx, dword [esp + 0x10]
jge 0x5a9ec6
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5a9f5a
jb 0x5a9f27
cmp eax, dword [esp + 0x38]
jae 0x5a9f5a
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5a9f3b
cmp ecx, dword [esp + 0x10]
jge 0x5a9f5a
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 0x5a9f80
mov ecx, dword [esp + 0x98]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0xb4]
mov dl, byte [ecx]
test dl, al
jne 0x5aa113
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 0x5aa0e6
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 0x5aa113
cmp ecx, dword [esp + 0x10]
jge 0x5aa062
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5aa113
jb 0x5aa0b9
cmp eax, dword [esp + 0x38]
jae 0x5aa113
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 0x5aa113
cmp ecx, dword [esp + 0x10]
jge 0x5aa113
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 0x5aa139
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xd8]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5aa2cd
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 0x5aa2a3
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 0x5aa2cd
cmp ecx, dword [esp + 0x10]
jge 0x5aa21b
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5aa2cd
jb 0x5aa279
cmp eax, dword [esp + 0x38]
jae 0x5aa2cd
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 0x5aa2cd
cmp ecx, dword [esp + 0x10]
jge 0x5aa2cd
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 0x5aa2f3
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xc4]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5aa489
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 0x5aa45c
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 0x5aa489
cmp ecx, dword [esp + 0x10]
jge 0x5aa3d5
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5aa489
jb 0x5aa42f
cmp eax, dword [esp + 0x38]
jae 0x5aa489
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 0x5aa489
cmp ecx, dword [esp + 0x10]
jge 0x5aa489
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 0x5aa4af
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xd0]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5aa645
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 0x5aa618
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 0x5aa645
cmp ecx, dword [esp + 0x10]
jge 0x5aa591
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5aa645
jb 0x5aa5eb
cmp eax, dword [esp + 0x38]
jae 0x5aa645
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 0x5aa645
cmp ecx, dword [esp + 0x10]
jge 0x5aa645
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 0x5aa674
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 0x5aa7ea
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 0x5aa7c4
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 0x5aa7ea
cmp ecx, dword [esp + 0x10]
jge 0x5aa764
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5aa7ea
jb 0x5aa7ba
cmp eax, dword [esp + 0x38]
jae 0x5aa7ea
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5aa7ce
cmp ecx, dword [esp + 0x10]
jge 0x5aa7ea
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 0x5aa819
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 0x5aa99f
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 0x5aa976
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 0x5aa99f
cmp ecx, dword [esp + 0x10]
jge 0x5aa908
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5aa99f
jb 0x5aa96c
cmp eax, dword [esp + 0x38]
jae 0x5aa99f
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5aa980
cmp ecx, dword [esp + 0x10]
jge 0x5aa99f
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 0x5aa9c5
mov ecx, dword [esp + 0x98]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0xb8]
mov dl, byte [ecx]
test dl, al
jne 0x5aab66
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 0x5aab36
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 0x5aab66
cmp ecx, dword [esp + 0x10]
jge 0x5aaaa7
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5aab66
jb 0x5aab06
cmp eax, dword [esp + 0x38]
jae 0x5aab66
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 0x5aab66
cmp ecx, dword [esp + 0x10]
jge 0x5aab66
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 0x5aab8c
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x9c]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5aad19
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 0x5aacef
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 0x5aad19
cmp ecx, dword [esp + 0x10]
jge 0x5aac6e
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5aad19
jb 0x5aacc5
cmp eax, dword [esp + 0x38]
jae 0x5aad19
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 0x5aad19
cmp ecx, dword [esp + 0x10]
jge 0x5aad19
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 0x5aad48
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 0x5aaec4
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 0x5aae9b
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 0x5aaec4
cmp ecx, dword [esp + 0x10]
jge 0x5aae38
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5aaec4
jb 0x5aae91
cmp eax, dword [esp + 0x38]
jae 0x5aaec4
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5aaea5
cmp ecx, dword [esp + 0x10]
jge 0x5aaec4
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 0x5aaef3
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 0x5ab075
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 0x5ab04c
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 0x5ab075
cmp ecx, dword [esp + 0x10]
jge 0x5aafe2
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ab075
jb 0x5ab042
cmp eax, dword [esp + 0x38]
jae 0x5ab075
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5ab056
cmp ecx, dword [esp + 0x10]
jge 0x5ab075
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 0x5ab0ae
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 0x5ab238
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 0x5ab212
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 0x5ab238
cmp ecx, dword [esp + 0x10]
jge 0x5ab1a7
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ab238
jb 0x5ab208
cmp eax, dword [esp + 0x38]
jae 0x5ab238
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5ab21c
cmp ecx, dword [esp + 0x10]
jge 0x5ab238
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 0x5ab271
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 0x5ab3f6
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 0x5ab3cd
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 0x5ab3f6
cmp ecx, dword [esp + 0x10]
jge 0x5ab36a
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ab3f6
jb 0x5ab3c3
cmp eax, dword [esp + 0x38]
jae 0x5ab3f6
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5ab3d7
cmp ecx, dword [esp + 0x10]
jge 0x5ab3f6
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 0x5ab41c
mov ecx, dword [esp + 0x94]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0xb4]
mov dl, byte [ecx]
test dl, al
jne 0x5ab5a9
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 0x5ab57f
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 0x5ab5a9
cmp ecx, dword [esp + 0x10]
jge 0x5ab4fe
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ab5a9
jb 0x5ab555
cmp eax, dword [esp + 0x38]
jae 0x5ab5a9
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 0x5ab5a9
cmp ecx, dword [esp + 0x10]
jge 0x5ab5a9
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 0x5ab5cf
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xd8]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5ab769
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 0x5ab73c
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 0x5ab769
cmp ecx, dword [esp + 0x10]
jge 0x5ab6b1
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ab769
jb 0x5ab70f
cmp eax, dword [esp + 0x38]
jae 0x5ab769
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 0x5ab769
cmp ecx, dword [esp + 0x10]
jge 0x5ab769
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 0x5ab78f
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xd0]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5ab92b
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 0x5ab8fb
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 0x5ab92b
cmp ecx, dword [esp + 0x10]
jge 0x5ab871
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5ab92b
jb 0x5ab8cb
cmp eax, dword [esp + 0x38]
jae 0x5ab92b
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 0x5ab92b
cmp ecx, dword [esp + 0x10]
jge 0x5ab92b
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 0x5ab951
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xc4]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5abae1
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 0x5abab7
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 0x5abae1
cmp ecx, dword [esp + 0x10]
jge 0x5aba33
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5abae1
jb 0x5aba8d
cmp eax, dword [esp + 0x38]
jae 0x5abae1
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 0x5abae1
cmp ecx, dword [esp + 0x10]
jge 0x5abae1
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 0x5abb10
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 0x5abc8d
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 0x5abc67
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 0x5abc8d
cmp ecx, dword [esp + 0x10]
jge 0x5abc00
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5abc8d
jb 0x5abc5d
cmp eax, dword [esp + 0x38]
jae 0x5abc8d
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5abc71
cmp ecx, dword [esp + 0x10]
jge 0x5abc8d
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 0x5abcbc
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 0x5abe3b
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 0x5abe12
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 0x5abe3b
cmp ecx, dword [esp + 0x10]
jge 0x5abdab
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.0057e360
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5abe3b
jb 0x5abe08
cmp eax, dword [esp + 0x38]
jae 0x5abe3b
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5abe1c
cmp ecx, dword [esp + 0x10]
jge 0x5abe3b
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 0x5abe63
mov ecx, dword [esp + 0x18]
cmp ecx, dword [esp + 0x1c]
jne 0x5abe63
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0x20]
jne 0x5abe63
cmp ebx, dword [esp + 0x28]
je 0x5abf19
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 0x5a80b2
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.004e3543
mov esp, ebp
pop ebp
ret