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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x138
xor eax, eax
mov dword [esp + 0x6c], edx
push esi
mov esi, ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x48], eax
xorps xmm0, xmm0
mov dword [esp + 0x6c], eax
mov dword [esp + 0x80], eax
cmp dword [esi + 0x24], 0
mov dword [esp + 0xb4], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x40], eax
mov eax, dword [esi]
push edi
mov dword [esp + 0xc], esi
mov dword [esp + 0xb4], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x5c], 0xffffffff
mov dword [esp + 0x24], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xbc], 1
movq qword [esp + 0xc4], xmm0
mov dword [esp + 0x98], eax
jne 0x5ba1756
call fcn.05bc5d50
mov edi, eax
mov dword [esp + 0x10], edi
test edi, edi
je 0x5ba1756
mov ecx, dword [edi + 0x3c]
mov dword [esp + 0x40], 0xffff8000
test ecx, ecx
je 0x5b9ef9d
mov eax, dword [esi]
xor edx, edx
mov dword [esp + 0x40], edx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x5b9ef9d
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x5b9ef91
mov dword [esp + 0x40], edx
cmp dword [edi + 0x38], 0
jne 0x5b9efb5
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x5b9efbe
cmp dword [eax + 0x30], 0
je 0x5b9efbe
cmp byte [esi + 0x9f], 0
je 0x5b9efd3
mov dword [esp + 0xcc], 0
mov dword [esp + 0x50], 0
jmp 0x5b9f001
lea eax, [esp + 0xfc]
mov edx, edi
push eax
push dword [ebp + 8]
mov ecx, esi
push 0x81
call fcn.05ba32e0
mov dword [esp + 0x5c], eax
add esp, 0xc
mov eax, dword [esp + 0xfc]
mov dword [esp + 0xcc], eax
mov edx, dword [esp + 0x74]
mov cl, byte [edi + 0x2b]
mov byte [esp + 0x1a], cl
cmp dword [edx], 1
jle 0x5b9f018
mov eax, dword [ebp + 8]
mov eax, dword [eax]
jmp 0x5b9f01a
xor eax, eax
mov dword [esp + 0x28], eax
cmp cl, 2
je 0x5b9f057
test eax, eax
jne 0x5b9f057
push str.UPDATE
push dword [ebp + 0x18]
mov ecx, esi
push dword [ebp + 0x14]
push dword [ebp + 0xc]
call fcn.05bc5640
add esp, 0x10
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
jmp 0x5b9f06e
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xa0], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x9c], eax
mov eax, dword [ebp + 0xc]
cmp byte [edi + 0x2b], 1
mov dword [esp + 0x6c], eax
je 0x5b9f07f
cmp word [edi + 0x22], 0
jg 0x5b9f090
mov edx, edi
mov ecx, esi
call fcn.05bcac90
test eax, eax
jne 0x5b9f4d9
push dword [esp + 0x50]
mov edx, edi
mov ecx, esi
call fcn.05bc5b10
add esp, 4
test eax, eax
jne 0x5b9f4d9
mov eax, dword [esi + 0x28]
mov dword [esp + 0x14], eax
mov dword [esp + 0xa8], eax
lea edx, [eax + 1]
mov dword [esi + 0x28], edx
test byte [edi + 0x1c], 0x80
mov dword [esp + 0xb0], edx
jne 0x5b9f0d3
mov dword [esp + 0x3c], 0
jmp 0x5b9f0de
mov ecx, edi
call fcn.05bcdb00
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 8]
xor ecx, ecx
mov dword [esp + 0xa4], ecx
test eax, eax
je 0x5b9f114
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x3c], eax
cmove edi, edx
inc edx
mov dword [esi + 0x28], edx
inc ecx
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x5b9f0f2
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0xa4], ecx
mov edx, dword [ebp + 0x1c]
test edx, edx
je 0x5b9f136
mov eax, dword [edx + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x2c]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xa8]
mov dword [esi + 0x28], eax
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x14]
push 0
mov dword [edx + 0x34], eax
movsx eax, word [edi + 0x22]
add eax, ecx
lea eax, [eax*4 + 6]
add eax, ecx
mov ecx, dword [esp + 0x9c]
push eax
call fcn.05c20690
mov ecx, eax
add esp, 8
mov dword [esp + 0x20], ecx
test ecx, ecx
je 0x5b9f4d9
movsx eax, word [edi + 0x22]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x88], ecx
lea ecx, [ecx + eax*4]
inc eax
push eax
add ecx, 4
push 1
push ecx
mov dword [esp + 0x9c], ecx
call fcn.05b02790
mov eax, dword [esp + 0xb0]
add esp, 0xc
mov ecx, dword [esp + 0x90]
mov byte [ecx + eax + 1], 0
xor eax, eax
xor ecx, ecx
cmp ax, word [edi + 0x22]
jge 0x5b9f1d4
mov esi, dword [esp + 0x20]
mov dword [esi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [edi + 0x22]
cmp ecx, eax
jl 0x5b9f1c0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x74]
xorps xmm0, xmm0
mov ecx, dword [ebp + 0x1c]
movaps xmmword [esp + 0x120], xmm0
mov dword [esp + 0x124], eax
mov eax, dword [esi + 8]
movaps xmmword [esp + 0x130], xmm0
mov dword [esp + 0x120], esi
mov dword [esp + 0x128], ecx
mov dword [esp + 0x138], 0x200
mov dword [esp + 8], eax
test eax, eax
jne 0x5b9f23d
cmp dword [esi + 0x78], eax
jne 0x5b9f22a
mov eax, dword [esi]
test byte [eax + 0x50], 8
jne 0x5b9f22a
mov byte [esi + 0x17], 1
mov ecx, esi
call fcn.05bf98f0
mov dword [esp + 8], eax
test eax, eax
je 0x5b9f4d9
mov ecx, dword [ebp + 8]
xor al, al
mov byte [esp + 0x3b], al
mov byte [esp + 0x1b], al
mov dword [esp + 0x34], 0
cmp dword [ecx], 0
jle 0x5b9f5a0
lea esi, [ecx + 8]
mov dword [esp + 0x30], esi
mov ecx, dword [esi + 4]
xor dl, dl
mov byte [esp + 0x3a], dl
test ecx, ecx
jne 0x5b9f275
mov byte [esp + 0x3a], dl
jmp 0x5b9f296
mov al, byte [ecx]
test al, al
je 0x5b9f296
nop dword [eax + eax]
movzx eax, al
lea ecx, [ecx + 1]
add dl, byte [eax + 0x5c478a0]
mov al, byte [ecx]
test al, al
jne 0x5b9f280
mov byte [esp + 0x3a], dl
cmp dword [esp + 0x28], 0
jne 0x5b9f2b3
mov edx, dword [esi]
lea ecx, [esp + 0x120]
call fcn.05be22b0
test eax, eax
jne 0x5b9f4d9
movsx eax, word [edi + 0x22]
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x60], eax
test eax, eax
jle 0x5b9f36c
mov eax, dword [edi + 4]
mov edi, eax
mov edx, dword [esp + 0x60]
mov dword [esp + 0x68], eax
mov al, byte [esp + 0x3a]
nop word [eax + eax]
cmp byte [edi + 0xa], al
jne 0x5b9f358
mov esi, dword [esi + 4]
mov edx, dword [edi]
sub esi, edx
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x5b9f333
test ecx, ecx
jne 0x5b9f345
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
movsx eax, word [edi + 0x20]
cmp ecx, eax
jne 0x5b9f3b8
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
mov byte [esp + 0x1b], 1
mov eax, dword [esi]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x5c], eax
mov dword [edx + ecx*4], eax
jmp 0x5b9f370
movzx eax, byte [eax + 0x5c478a0]
movzx ecx, byte [ecx + 0x5c478a0]
sub ecx, eax
jne 0x5b9f348
inc edx
jmp 0x5b9f2f0
mov ecx, dword [esp + 0x2c]
mov al, byte [esp + 0x3a]
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x30]
inc ecx
add edi, 0x10
mov dword [esp + 0x2c], ecx
cmp ecx, edx
jl 0x5b9f2e0
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x30]
movsx eax, word [edi + 0x22]
cmp ecx, eax
jl 0x5b9f407
cmp dword [esp + 0x3c], 0
jne 0x5b9f537
mov ecx, dword [esi + 4]
call fcn.05bde930
test eax, eax
je 0x5b9f537
mov eax, dword [esi]
or edi, 0xffffffff
mov dword [esp + 0x7c], eax
mov edx, str.ROWID
mov eax, dword [esp + 0x34]
mov dword [esp + 0x2c], edi
mov byte [esp + 0x1b], 1
mov dword [esp + 0x5c], eax
jmp 0x5b9f41a
cmp dword [esp + 0x3c], 0
mov edx, dword [esp + 0x68]
je 0x5b9f3e4
mov eax, ecx
add eax, eax
test byte [edx + eax*8 + 0xe], 1
je 0x5b9f3e4
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov byte [esp + 0x3b], 1
mov dword [edx + ecx*4], eax
jmp 0x5b9f370
mov eax, ecx
add eax, eax
test byte [edx + eax*8 + 0xe], 0x60
jne 0x5b9f4c0
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov dword [edx + ecx*4], eax
jmp 0x5b9f370
test ecx, ecx
jns 0x5b9f412
mov edx, str.ROWID
jmp 0x5b9f41a
mov eax, dword [edi + 4]
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x40]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov esi, dword [eax + ecx*8]
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 0x17c]
test ecx, ecx
je 0x5b9f498
cmp byte [eax + 0xb1], 0
jne 0x5b9f498
mov edi, dword [esp + 0xc]
cmp byte [edi + 0xd8], 0
jne 0x5b9f498
push dword [edi + 0x100]
push esi
mov esi, dword [esp + 0x18]
push edx
push dword [esi]
push 0x17
push dword [eax + 0x180]
call ecx
mov edi, dword [esp + 0x44]
add esp, 0x18
cmp eax, 1
je 0x5b9f57e
test eax, eax
je 0x5b9f488
cmp eax, 2
jne 0x5b9f560
cmp eax, 2
jne 0x5b9f498
mov eax, dword [esp + 0x20]
mov dword [eax + edi*4], 0xffffffff
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 8]
inc eax
mov esi, dword [esp + 0x30]
add esi, 0x14
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], esi
cmp eax, dword [ecx]
jge 0x5b9f59c
mov edi, dword [esp + 0x10]
jmp 0x5b9f262
mov eax, dword [edi + 4]
add ecx, ecx
push dword [eax + ecx*8]
push str.cannot_UPDATE_generated_column___s_
push dword [esp + 0x14]
call fcn.05c1c6a0
add esp, 0xc
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0xc8]
test ecx, ecx
je 0x5b9f4f5
mov eax, dword [esp + 0xc4]
mov dword [ecx + 0x100], eax
mov esi, dword [esp + 0x98]
test edi, edi
je 0x5ba17ff
test esi, esi
je 0x5ba17a7
cmp edi, dword [esi + 0x174]
jae 0x5ba1793
cmp edi, dword [esi + 0x16c]
jb 0x5ba1778
mov eax, dword [esi + 0x168]
mov dword [edi], eax
mov dword [esi + 0x168], edi
jmp 0x5ba17ff
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0xc]
lea eax, [eax + eax*4]
push dword [ecx + eax*4 + 0xc]
push str.no_such_column:__s
push esi
call fcn.05c1c6a0
add esp, 0xc
mov byte [esi + 0x11], 1
jmp 0x5b9f4d9
mov esi, dword [esp + 0xc]
push str.authorizer_malfunction
push esi
call fcn.05c1c6a0
add esp, 8
mov dword [esi + 0xc], 1
jmp 0x5b9f4d9
mov esi, dword [esp + 0xc]
push str.not_authorized
push esi
call fcn.05c1c6a0
add esp, 8
mov dword [esi + 0xc], 0x17
jmp 0x5b9f4d9
mov al, byte [esp + 0x3b]
mov edx, dword [esp + 0x10]
add al, byte [esp + 0x1b]
mov byte [esp + 0x58], al
test byte [edx + 0x1c], 0x60
je 0x5b9f6bd
xor ecx, ecx
xor eax, eax
xor esi, esi
mov dword [esp + 0x60], ecx
cmp ax, word [edx + 0x22]
jge 0x5b9f6bd
xor edi, edi
nop dword [eax]
mov eax, dword [esp + 0x20]
cmp dword [eax + esi*4], 0
jge 0x5b9f6a5
mov eax, dword [edx + 4]
test byte [eax + edi + 0xe], 0x60
je 0x5b9f6a5
movzx eax, word [eax + edi + 0xc]
test ax, ax
jne 0x5b9f5fa
xor edx, edx
jmp 0x5b9f61a
cmp byte [edx + 0x2b], 0
je 0x5b9f604
xor edx, edx
jmp 0x5b9f61a
mov edx, dword [edx + 0x34]
test edx, edx
je 0x5b9f61a
cmp dword [edx], eax
jge 0x5b9f613
xor edx, edx
jmp 0x5b9f61a
lea eax, [eax + eax*4]
mov edx, dword [edx + eax*4 - 0xc]
mov ecx, dword [esp + 0x20]
xorps xmm0, xmm0
xor eax, eax
mov dword [esp + 0xe8], 0
movaps xmmword [esp + 0xd0], xmm0
movq qword [esp + 0xe0], xmm0
mov dword [esp + 0xe8], ecx
mov ecx, dword [esp + 0x60]
mov word [esp + 0xe4], ax
mov dword [esp + 0xd4], 0x5bbbc10
test edx, edx
je 0x5b9f679
lea ecx, [esp + 0xd0]
call fcn.05be5180
mov ax, word [esp + 0xe4]
mov ecx, dword [esp + 0x60]
cmp byte [esp + 0x1b], 0
jne 0x5b9f688
mov edx, 0xfffd
and ax, dx
mov edx, dword [esp + 0x10]
test ax, ax
je 0x5b9f6a5
mov eax, dword [esp + 0x20]
mov ecx, 1
mov dword [esp + 0x60], ecx
mov dword [eax + esi*4], 0x1869f
movsx eax, word [edx + 0x22]
inc esi
add edi, 0x10
cmp esi, eax
jl 0x5b9f5d0
test ecx, ecx
jne 0x5b9f5b6
cmp byte [edx + 0x2b], 1
jne 0x5b9f6cb
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x5b9f6dc
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x74]
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0xc]
mov dword [esi + 0x44], ecx
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
and eax, 0x4000
or eax, 0
je 0x5b9f71b
movzx eax, byte [esp + 0x58]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
push eax
call fcn.05bbe140
mov edx, dword [esp + 0x14]
add esp, 4
mov ecx, eax
mov dword [esp + 0x30], eax
jmp 0x5b9f721
xor ecx, ecx
mov dword [esp + 0x30], ecx
cmp dword [ebp + 0x10], 5
mov esi, 1
mov eax, dword [esp + 0x84]
cmove eax, esi
xor edi, edi
mov dword [esp + 0x84], eax
mov esi, dword [edx + 8]
mov dword [esp + 0x68], edi
test esi, esi
je 0x5b9f8e8
nop dword [eax]
cmp byte [esp + 0x58], 0
jne 0x5b9fb01
cmp ecx, 1
jg 0x5b9fb01
cmp esi, dword [esp + 0x3c]
je 0x5b9fb01
mov edx, dword [esi + 0x24]
test edx, edx
je 0x5b9f7eb
xorps xmm0, xmm0
mov dword [esp + 0xe8], 0
xor eax, eax
movq qword [esp + 0xe0], xmm0
mov word [esp + 0xe4], ax
lea ecx, [esp + 0xd0]
mov eax, dword [esp + 0x20]
movaps xmmword [esp + 0xd0], xmm0
mov dword [esp + 0xd4], 0x5bbbc10
mov dword [esp + 0xe8], eax
call fcn.05be5180
cmp byte [esp + 0x1b], 0
mov cx, word [esp + 0xe4]
jne 0x5b9f7db
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
setne al
test eax, eax
jne 0x5b9fb01
xor ecx, ecx
xor eax, eax
xor edi, edi
mov dword [esp + 0x2c], ecx
cmp ax, word [esi + 0x32]
jae 0x5b9f8ba
mov dword [esp + 0x60], ecx
mov eax, dword [esi + 4]
movzx eax, word [eax + edi*2]
test ax, ax
js 0x5b9f821
mov edx, dword [esp + 0x20]
cwde
mov eax, dword [edx + eax*4]
not eax
shr eax, 0x1f
jmp 0x5b9f89a
mov eax, dword [esi + 0x28]
xorps xmm0, xmm0
movaps xmmword [esp + 0x100], xmm0
movq qword [esp + 0x110], xmm0
mov dword [esp + 0x118], 0
mov edx, dword [eax + ecx + 8]
xor ecx, ecx
mov eax, dword [esp + 0x20]
mov word [esp + 0x114], cx
mov dword [esp + 0x104], 0x5bbbc10
mov dword [esp + 0x118], eax
test edx, edx
je 0x5b9f87f
lea ecx, [esp + 0x100]
call fcn.05be5180
mov cx, word [esp + 0x114]
cmp byte [esp + 0x1b], 0
jne 0x5b9f88e
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
mov ecx, dword [esp + 0x60]
setne al
test eax, eax
jne 0x5b9fad1
movzx eax, word [esi + 0x32]
inc edi
add ecx, 0x14
mov dword [esp + 0x60], ecx
cmp edi, eax
jl 0x5b9f803
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x90]
mov byte [edi + eax + 1], 0
mov eax, dword [esp + 0x88]
mov dword [eax + edi*4], ecx
inc edi
mov esi, dword [esi + 0x14]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x68], edi
test esi, esi
jne 0x5b9f750
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x88]
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [ecx + edi*4], eax
cmp dword [esp + 0x84], 0
je 0x5b9f920
mov eax, dword [esp + 0xa4]
inc eax
push eax
push 1
push dword [esp + 0x98]
call fcn.05b02790
add esp, 0xc
cmp byte [esi + 0x12], 0
jne 0x5b9f931
mov eax, dword [esp + 8]
or dword [eax + 0x98], 0x10
cmp dword [esp + 0x50], 0
jne 0x5b9f947
cmp dword [esp + 0x30], 0
mov dword [esp + 0x60], 0
je 0x5b9f94f
mov dword [esp + 0x60], 1
mov eax, dword [esi + 0x78]
test eax, eax
mov ecx, dword [esp + 0x40]
cmovne esi, eax
mov eax, 1
shl eax, cl
mov edx, dword [esi + 0x58]
test edx, eax
jne 0x5b9f97f
bts edx, ecx
mov dword [esi + 0x58], edx
cmp ecx, 1
jne 0x5b9f97f
mov ecx, esi
call fcn.05bc7840
mov ecx, dword [esp + 0x40]
mov eax, dword [esi + 0x54]
mov edx, dword [esp + 0x10]
bts eax, ecx
mov dword [esi + 0x54], eax
mov eax, dword [esp + 0x60]
or byte [esi + 0x14], al
cmp byte [edx + 0x2b], 1
mov esi, dword [esp + 0xc]
je 0x5b9fa19
mov eax, dword [esp + 0x88]
mov eax, dword [eax + edi*4]
inc dword [esi + 0x2c]
cmp byte [esp + 0x3b], 0
mov ecx, dword [esi + 0x2c]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x1c], ecx
jne 0x5b9f9d7
test edi, edi
jne 0x5b9f9d7
mov eax, dword [esp + 0x30]
test eax, eax
je 0x5b9f9ee
lea eax, [ecx + 1]
mov dword [esp + 0x80], eax
movsx eax, word [edx + 0x22]
add eax, ecx
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x30]
cmp byte [esp + 0x58], 0
jne 0x5b9f9fd
test edi, edi
jne 0x5b9f9fd
test eax, eax
je 0x5b9fa07
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x2c]
inc eax
mov dword [esp + 0x94], eax
movsx eax, word [edx + 0x22]
add dword [esi + 0x2c], eax
mov al, byte [esp + 0x1a]
cmp al, 2
jne 0x5b9fa41
mov eax, dword [esi + 0x100]
mov dword [esp + 0xc4], eax
mov eax, dword [edx]
mov dword [esi + 0x100], eax
mov al, byte [esp + 0x1a]
mov dword [esp + 0xc8], esi
cmp dword [esp + 0x28], 0
mov edi, dword [esp + 0x6c]
jne 0x5b9fa9d
cmp al, 2
jne 0x5b9fa83
push dword [esp + 0x14]
mov ecx, esi
push dword [esp + 0xa4]
push dword [esp + 0xa4]
push edi
call fcn.05bc59c0
add esp, 0x10
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov edx, edi
lea ecx, [esp + 0x120]
call fcn.05be22b0
test eax, eax
jne 0x5b9f4d9
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x2b], 1
jne 0x5b9fb21
push dword [ebp + 0x10]
mov ecx, esi
push edi
mov edi, dword [esp + 0x28]
push edi
push dword [esp + 0x88]
push dword [ebp + 8]
push edx
mov edx, dword [esp + 0x8c]
call fcn.05b9e430
add esp, 0x18
jmp 0x5b9f4dd
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x68]
inc dword [edx + 0x2c]
movzx eax, word [esi + 0x34]
mov ecx, dword [edx + 0x2c]
add eax, ecx
cmp dword [ebp + 0x10], 0xb
mov dword [edx + 0x2c], eax
jne 0x5b9fb14
cmp byte [esi + 0x36], 5
jne 0x5b9fb14
mov dword [esp + 0x84], 1
jmp 0x5b9fb14
mov edx, dword [esp + 0xc]
inc dword [edx + 0x2c]
movzx eax, word [esi + 0x34]
mov ecx, dword [edx + 0x2c]
add eax, ecx
mov dword [edx + 0x2c], eax
test ecx, ecx
jne 0x5b9f8ca
jmp 0x5b9f8be
mov eax, dword [esp + 0x98]
dec dword [esi + 0x38]
mov edi, dword [esi + 0x38]
mov dword [esp + 0x2c], edi
mov ecx, dword [eax + 0x24]
xor eax, eax
and ecx, 1
mov dword [esp + 0x34], edi
or eax, ecx
mov ecx, dword [esp + 0xc]
je 0x5b9fbec
cmp dword [ecx + 0x7c], 0
jne 0x5b9fbec
cmp byte [ecx + 0x12], 0
jne 0x5b9fbec
cmp byte [ecx + 0x9d], 0
jne 0x5b9fbec
cmp dword [ebp + 0x1c], 0
mov esi, dword [esp + 8]
jne 0x5b9fbf0
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esi + 0x6c]
mov dword [esp + 0xb8], eax
cmp dword [esi + 0x70], ecx
jg 0x5b9fbac
push 0
push eax
push 0
mov edx, 0x47
mov ecx, esi
call fcn.05bf9640
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0xc]
jmp 0x5b9fbf0
mov edi, dword [esp + 0xb8]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0xc]
jmp 0x5b9fbf0
mov esi, dword [esp + 8]
cmp dword [esp + 0x28], 0
jne 0x5b9fcdc
test byte [edx + 0x1c], 0x80
jne 0x5b9fcdc
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x5b9fc2b
push dword [esp + 0x1c]
mov edx, 0x4b
mov ecx, esi
push dword [esp + 0x90]
push 0
call fcn.05bf9640
add esp, 0xc
jmp 0x5b9fc61
mov edx, dword [esp + 0x8c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x4b
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x28]
mov dword [esp + 0x24], eax
inc eax
mov dword [edx + 0x28], eax
mov ecx, dword [esi + 0x6c]
mov dword [esp + 0x78], ecx
cmp dword [esi + 0x70], ecx
jg 0x5b9fca1
push dword [esp + 0x8c]
mov edx, 0x76
mov ecx, esi
push 0
push dword [esp + 0x2c]
call fcn.05bf9640
add esp, 0xc
mov dword [esp + 0x78], eax
jmp 0x5b9fee6
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x8c]
mov dword [eax + ecx*4], 0x76
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x5b9feea
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x5b9fcea
movzx eax, word [eax + 0x32]
jmp 0x5b9fcec
xor eax, eax
mov esi, dword [ecx + 0x2c]
movsx edi, ax
inc esi
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x4c], esi
add eax, edi
mov dword [esp + 0x60], edi
add dword [ecx + 0x2c], eax
cmp dword [ebp + 0x1c], 0
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x44], eax
jne 0x5b9fea3
cmp byte [esp + 0x1a], 2
jne 0x5b9fd27
movsx eax, word [edx + 0x22]
jmp 0x5b9fd29
xor eax, eax
lea esi, [edi + eax]
mov eax, dword [ecx + 0x28]
add esi, dword [esp + 0x28]
mov dword [esp + 0x24], eax
inc eax
cmp dword [esp + 0x3c], 0
mov dword [ecx + 0x28], eax
je 0x5b9fdaa
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x4c]
dec edx
add edx, edi
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x5b9fd71
push edx
push dword [esp + 0x50]
mov edx, 0x4b
mov ecx, eax
push 0
call fcn.05bf9640
add esp, 0xc
jmp 0x5b9fdaa
mov edi, dword [esp + 8]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, edi
mov edi, dword [esp + 0x4c]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x60]
mov dword [eax + ecx*4], 0x4b
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x6c]
mov dword [esp + 0x78], edx
cmp dword [ecx + 0x70], edx
jg 0x5b9fdd4
push 0
push esi
push dword [esp + 0x2c]
mov edx, 0x76
call fcn.05bf9640
add esp, 0xc
mov dword [esp + 0x78], eax
jmp 0x5b9fe07
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x76
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x5b9fe56
mov ecx, dword [esp + 0xc]
mov edx, eax
call fcn.05bc6e20
mov edx, eax
test edx, edx
je 0x5b9fe52
mov word [edx + 8], si
mov esi, dword [esp + 8]
mov ecx, dword [esi]
cmp byte [ecx + 0x57], 0
je 0x5b9fe40
push edx
mov edx, 0xfffffff8
call fcn.05bf8580
add esp, 4
jmp 0x5b9fe52
mov eax, dword [esi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf8
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x28], 0
je 0x5b9fe9b
push dword [esp + 0xa0]
mov edx, dword [esp + 0x78]
push dword [esp + 0xa0]
mov ecx, dword [ebp + 8]
push dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x20]
push eax
call fcn.05ba1860
mov eax, dword [esp + 0x2c]
add esp, 0x18
cmp byte [esp + 0x1a], 2
cmove eax, dword [esp + 0x24]
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0xc]
cmp dword [esp + 0x28], 0
je 0x5b9fee2
mov eax, dword [ecx + 0x78]
test eax, eax
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0xc4]
cmovne ecx, eax
mov dword [esp + 0xac], edi
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x60], esi
xor esi, esi
mov byte [ecx + 0x14], 1
mov dword [esp + 0x54], 0
jmp 0x5ba0381
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0xc]
cmp dword [ebp + 0x1c], 0
je 0x5b9ff7f
push 0x10
push edi
push dword [esp + 0x74]
mov esi, 1
mov dword [esp + 0xcc], 0
push edx
mov dword [esp + 0x64], esi
call fcn.05bd9680
mov edi, dword [esp + 0xd8]
add esp, 0x10
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xbc], 0
mov dword [esp + 0x40], edi
mov dword [esp + 0x60], eax
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test byte [ecx + 0x1c], 0x80
jne 0x5ba0176
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x5ba006d
mov ecx, dword [esp + 8]
mov edx, 0x87
push 0
push dword [esp + 0x20]
push dword [esp + 0x1c]
call fcn.05bf9640
mov edx, dword [esp + 0x14]
add esp, 0xc
jmp 0x5ba00a4
cmp byte [edx + 0x12], 0
mov eax, 4
jne 0x5b9ffb9
cmp dword [esp + 0x50], 0
jne 0x5b9ffb9
cmp dword [esp + 0x30], 0
jne 0x5b9ffb9
cmp byte [esp + 0x58], 0
jne 0x5b9ffb9
cmp dword [esp + 0x84], 0
jne 0x5b9ffb9
test byte [esp + 0x138], 0x40
mov ecx, 0xc
cmove eax, ecx
push dword [esp + 0xb0]
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x10]
push eax
push 0
push 0
push 0
push dword [esp + 0x80]
call fcn.05b8abd0
mov ecx, eax
add esp, 0x18
mov dword [esp + 0xc0], ecx
test ecx, ecx
je 0x5b9f4d9
mov eax, dword [ecx + 0x14]
movzx esi, byte [ecx + 0x2e]
mov edi, dword [ecx + 0x18]
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 0x30]
and eax, 1
mov dword [esp + 0x40], edi
mov dword [esp + 0x54], esi
mov dword [esp + 0xbc], eax
cmp esi, 1
je 0x5b9ff39
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x78]
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x14], 1
cmp esi, 2
jne 0x5b9ff39
test edi, edi
js 0x5b9ff39
mov edx, dword [esp + 0x14]
cmp edi, edx
je 0x5b9ff3d
mov ecx, dword [esp + 0x90]
mov eax, edi
sub eax, dword [esp + 0xa8]
cmp byte [eax + ecx], 0
mov eax, 0
cmovne esi, eax
mov dword [esp + 0x54], esi
jmp 0x5b9ff3d
mov edi, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x87
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test esi, esi
jne 0x5ba0130
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x88]
inc dword [eax + 0x2c]
mov eax, dword [eax + 0x2c]
mov dword [edi + ecx*4], eax
mov ecx, dword [edx + 0x6c]
mov edi, dword [esp + 0x40]
cmp dword [edx + 0x70], ecx
jg 0x5ba00f5
push dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov edx, 0x80
push dword [esp + 0x90]
push dword [esp + 0x2c]
call fcn.05bf9640
add esp, 0xc
jmp 0x5ba0381
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x8c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x80
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x5ba0381
mov eax, dword [esp + 0x78]
test eax, eax
je 0x5ba0381
mov ecx, dword [edx]
cmp byte [ecx + 0x57], 0
jne 0x5ba0381
lea edx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x68]
push dword [eax + edx*4 + 0x10]
lea esi, [eax + edx*4]
movsx edx, byte [esi + 1]
call fcn.05bf8580
add esp, 4
mov word [esi], 0xb8
mov dword [esi + 0x10], 0
jmp 0x5ba037d
mov eax, dword [esp + 0x70]
xor esi, esi
movsx edi, ax
test edi, edi
jle 0x5ba01b2
mov eax, dword [esp + 0x4c]
add eax, esi
push eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push edx
mov edx, ecx
mov ecx, dword [esp + 0x14]
call fcn.05bdbb70
mov ecx, dword [esp + 0x1c]
inc esi
mov edx, dword [esp + 0x20]
add esp, 0xc
cmp esi, edi
jl 0x5ba0183
mov esi, dword [esp + 0x54]
test esi, esi
je 0x5ba020f
mov edx, dword [esp + 0x78]
test edx, edx
je 0x5ba01f7
mov eax, dword [esp + 8]
mov ecx, dword [eax]
cmp byte [ecx + 0x57], 0
jne 0x5ba01f7
mov eax, dword [eax + 0x68]
lea edx, [edx + edx*4]
push dword [eax + edx*4 + 0x10]
lea esi, [eax + edx*4]
movsx edx, byte [esi + 1]
call fcn.05bf8580
mov word [esi], 0xb8
add esp, 4
mov dword [esi + 0x10], 0
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xac], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x44], eax
jmp 0x5ba0381
mov eax, dword [esp + 0x3c]
mov esi, dword [eax + 0x10]
test esi, esi
jne 0x5ba022a
mov ecx, dword [esp + 0x98]
mov edx, eax
call fcn.05bbd600
mov esi, eax
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x6c]
mov dword [esp + 0x78], edx
cmp dword [ecx + 0x70], edx
jg 0x5ba0256
push dword [esp + 0x44]
mov edx, 0x61
push edi
push dword [esp + 0x54]
mov edi, ecx
call fcn.05bf9640
add esp, 0xc
mov edx, eax
jmp 0x5ba0291
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x4c]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 8]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x78]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
je 0x5ba02b2
mov edx, dword [esp + 0x70]
movsx eax, dx
cmp eax, 0xfffffff5
je 0x5ba0301
push esi
mov edx, eax
call fcn.05bf8580
add esp, 4
jmp 0x5ba0301
test edx, edx
jns 0x5ba02ba
mov edx, dword [edi + 0x6c]
dec edx
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
lea edx, [eax + ecx*4]
mov ecx, dword [esp + 0x70]
movsx eax, cx
test eax, eax
jns 0x5ba02f5
cmp byte [edx + 1], 0
jne 0x5ba02f5
cmp eax, 0xfffffffd
jne 0x5ba02e1
mov dword [edx + 0x10], esi
mov byte [edx + 1], al
jmp 0x5ba0301
test esi, esi
je 0x5ba0301
mov dword [edx + 0x10], esi
mov byte [edx + 1], al
cmp eax, 0xfffffff5
jne 0x5ba0301
inc dword [esi + 0xc]
jmp 0x5ba0301
push eax
push esi
mov ecx, edi
call fcn.05bf8330
add esp, 8
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x5ba0328
push dword [esp + 0x4c]
mov edx, 0x8a
mov ecx, edi
push dword [esp + 0x48]
push dword [esp + 0x2c]
call fcn.05bf9640
add esp, 0xc
mov edx, eax
jmp 0x5ba035b
mov esi, dword [esp + 0x24]
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x8a
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x5ba0379
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x70]
movsx edi, dx
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x54]
cmp dword [ebp + 0x1c], 0
jne 0x5ba05b0
cmp dword [esp + 0x28], 0
jne 0x5ba03a3
cmp esi, 2
je 0x5ba03a3
mov ecx, dword [esp + 0xc0]
call fcn.05b89f90
cmp byte [esp + 0x1a], 2
je 0x5ba04b8
mov ecx, dword [esp + 0x54]
xor esi, esi
test ecx, ecx
je 0x5ba03e3
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x90]
test eax, eax
js 0x5ba03d2
sub eax, dword [esp + 0xa8]
mov byte [eax + edx], 0
test edi, edi
js 0x5ba03e3
mov eax, edi
sub eax, dword [esp + 0xa8]
mov byte [eax + edx], 0
cmp ecx, 2
jne 0x5ba045a
mov ecx, dword [esp + 0xa4]
xor eax, eax
test edi, edi
setns al
sub ecx, eax
test ecx, ecx
jle 0x5ba045a
mov ecx, dword [esp + 8]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jg 0x5ba0423
push 0
push 0
push 0
mov edx, 0xf
call fcn.05bf9640
add esp, 0xc
mov esi, eax
jmp 0x5ba045a
lea eax, [esi + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0xf
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
push 0
push 0
push dword [esp + 0x98]
push dword [esp + 0xb4]
push 0
push 0x71
call fcn.05bb8fd0
add esp, 0x18
test esi, esi
je 0x5ba04b8
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x6c]
lea eax, [edx - 1]
cmp esi, eax
jne 0x5ba0499
mov edx, ecx
mov dword [edx + 0x6c], eax
jmp 0x5ba04bc
mov eax, dword [ecx]
cmp byte [eax + 0x57], 0
je 0x5ba04a8
mov eax, 0x5c54724
jmp 0x5ba04b5
mov eax, dword [esp + 8]
lea ecx, [esi + esi*4]
mov eax, dword [eax + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x54]
test esi, esi
je 0x5ba064d
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x60], eax
je 0x5ba0568
cmp edi, eax
je 0x5ba0568
mov ecx, dword [esp + 8]
mov edx, dword [edx + 0x6c]
cmp dword [ecx + 0x70], edx
jg 0x5ba0505
push dword [esp + 0x44]
mov edi, dword [esp + 0x30]
mov edx, 0x1c
push edi
push eax
call fcn.05bf9640
add esp, 0xc
mov edx, eax
jmp 0x5ba0540
mov edi, dword [esp + 0x14]
lea eax, [edx + 1]
mov esi, dword [esp + 0x44]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x54]
mov dword [eax + ecx*4], 0x1c
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 8]
mov eax, dword [eax]
cmp byte [eax + 0x57], 0
jne 0x5ba056c
mov eax, dword [esp + 8]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0xac]
mov eax, dword [eax + 0x68]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x5ba056c
mov edi, dword [esp + 0x2c]
cmp esi, 1
je 0x5ba057f
mov eax, dword [esp + 0xc]
dec dword [eax + 0x38]
mov esi, dword [eax + 0x38]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 8]
cmp dword [esp + 0x3c], 0
mov edx, dword [esp + 0x1c]
cmovne edx, dword [esp + 0x44]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x5ba061d
push 0
push edi
push edx
mov edx, 0x32
mov ecx, esi
call fcn.05bf9640
add esp, 0xc
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0xc]
cmp byte [esp + 0x1b], 0
je 0x5ba0b97
test eax, eax
jne 0x5ba0b08
cmp dword [edi + 8], eax
je 0x5ba0aab
mov edx, dword [esp + 0x48]
mov ecx, edi
mov esi, dword [esp + 0x7c]
push edx
mov edx, esi
call fcn.05bda5a0
mov edi, eax
add esp, 4
cmp edi, dword [esp + 0x48]
je 0x5ba0aab
test esi, esi
je 0x5ba0a86
test dword [esi + 4], 0x400000
jne 0x5ba0613
cmp byte [esi], 0xb0
jne 0x5ba0a86
mov edx, 0x50
jmp 0x5ba0a8b
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x5ba05b0
cmp dword [esp + 0x3c], 0
jne 0x5ba079b
cmp dword [esp + 0x28], 0
jne 0x5ba079b
mov ecx, dword [edx + 0x6c]
mov edi, dword [esp + 0x2c]
cmp dword [edx + 0x70], ecx
jg 0x5ba068d
mov ecx, dword [esp + 8]
mov edx, 0x24
push 0
push edi
push dword [esp + 0x2c]
call fcn.05bf9640
mov edx, dword [esp + 0x14]
add esp, 0xc
jmp 0x5ba06bc
mov esi, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4], 0x24
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0xc]
dec dword [edi + 0x38]
mov ecx, dword [edx + 0x6c]
mov esi, dword [edi + 0x38]
mov dword [esp + 0x34], esi
mov dword [esp + 0xb4], ecx
cmp dword [edx + 0x70], ecx
jg 0x5ba0701
mov ecx, dword [esp + 8]
mov edx, 0x87
push 0
push dword [esp + 0x20]
push dword [esp + 0x2c]
call fcn.05bf9640
mov edx, dword [esp + 0x14]
add esp, 0xc
mov dword [esp + 0xb4], eax
jmp 0x5ba0738
mov edi, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0xc]
mov dword [eax + ecx*4], 0x87
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x5ba0767
push dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov edx, 0x1f
push esi
push dword [esp + 0x1c]
call fcn.05bf9640
add esp, 0xc
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x28]
jmp 0x5ba05bc
mov edi, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x5ba05b4
mov eax, dword [esp + 0xc]
dec dword [eax + 0x38]
mov ecx, dword [edx + 0x6c]
mov esi, dword [eax + 0x38]
mov dword [esp + 0x34], esi
cmp dword [edx + 0x70], ecx
jg 0x5ba07d4
mov edi, dword [esp + 0x2c]
mov edx, 0x24
mov ecx, dword [esp + 8]
push 0
push edi
mov edi, dword [esp + 0x2c]
push edi
call fcn.05bf9640
mov edx, dword [esp + 0x14]
add esp, 0xc
jmp 0x5ba080b
mov edi, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x24
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x28]
mov ecx, dword [edx + 0x6c]
mov dword [esp + 0xb4], ecx
test eax, eax
je 0x5ba09a9
cmp byte [esp + 0x1a], 2
je 0x5ba05b8
cmp dword [esp + 0x3c], 0
je 0x5ba0933
mov eax, dword [esp + 0x70]
xor esi, esi
movsx edi, ax
test edi, edi
jle 0x5ba08aa
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x5ba0873
mov eax, dword [esp + 0x4c]
mov edx, 0x5e
mov ecx, dword [esp + 8]
add eax, esi
push eax
push esi
push dword [esp + 0x2c]
call fcn.05bf9640
mov edx, dword [esp + 0x14]
add esp, 0xc
jmp 0x5ba08a5
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4], 0x5e
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0x10], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x24]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x4c]
add eax, esi
mov dword [ecx + 0xc], eax
inc esi
cmp esi, edi
jl 0x5ba0848
mov ecx, dword [esp + 8]
mov edx, dword [edx + 0x6c]
cmp dword [ecx + 0x70], edx
jg 0x5ba08d4
push dword [esp + 0x4c]
mov esi, dword [esp + 0x38]
mov edx, 0x1c
push esi
push dword [esp + 0x1c]
call fcn.05bf9640
add esp, 0xc
mov edx, eax
jmp 0x5ba090b
mov esi, dword [esp + 0x14]
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x34]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x1c
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 8]
mov eax, dword [eax]
cmp byte [eax + 0x57], 0
jne 0x5ba05b0
lea ecx, [edx + edx*4]
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x68]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
jmp 0x5ba05b4
cmp dword [edx + 0x70], ecx
jg 0x5ba095a
mov ecx, dword [esp + 8]
mov edx, 0x87
push 0
push dword [esp + 0x20]
push edi
call fcn.05bf9640
mov edx, dword [esp + 0x14]
add esp, 0xc
mov edi, dword [esp + 0x1c]
jmp 0x5ba0989
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x87
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x5ba0767
mov ecx, dword [esp + 8]
mov edx, 0x1f
push edi
push esi
push dword [esp + 0x1c]
jmp 0x5ba05a8
cmp dword [edx + 0x70], ecx
jg 0x5ba09cc
mov ecx, dword [esp + 8]
mov edx, 0x86
push 0
push dword [esp + 0x48]
push edi
call fcn.05bf9640
mov edx, dword [esp + 0x14]
add esp, 0xc
jmp 0x5ba09fb
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x86
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 8]
mov edx, dword [edx + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x5ba0a23
push dword [esp + 0x44]
mov edx, 0x1c
mov ecx, edi
push esi
push dword [esp + 0x1c]
call fcn.05bf9640
add esp, 0xc
mov edx, eax
jmp 0x5ba0a56
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 8]
mov dword [eax + ecx*4], 0x1c
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
mov edi, dword [esp + 0xc]
cmp byte [eax + 0x57], 0
jne 0x5ba075a
lea ecx, [edx + edx*4]
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x68]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x28]
jmp 0x5ba05bc
mov edx, 0x51
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 8]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x5ba0ada
push 0
push dword [esp + 0x4c]
mov ecx, esi
push edi
call fcn.05bf9640
add esp, 0xc
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x5ba0b68
mov ecx, dword [esp + 8]
mov edx, 0xd
push 0
push 0
push esi
call fcn.05bf9640
add esp, 0xc
jmp 0x5ba0b97
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x48]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 4], edi
lea eax, [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 8], esi
mov word [eax + 2], cx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
jmp 0x5ba0aaf
mov ecx, dword [edx + 0x6c]
mov esi, dword [esp + 0x48]
cmp dword [edx + 0x70], ecx
jg 0x5ba0b34
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 8]
push esi
push edx
push dword [esp + 0x2c]
mov edx, 0x5e
call fcn.05bf9640
add esp, 0xc
jmp 0x5ba0aaf
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x5c]
mov dword [eax + ecx*4], 0x5e
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x5ba0aaf
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [esp + 0x3b], 0
jne 0x5ba0bc6
cmp dword [esp + 0x30], 0
jne 0x5ba0bcd
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x5ba0d52
mov edi, dword [esp + 0xc]
xor esi, esi
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 0x2b], 2
jne 0x5ba0be0
or eax, 0xffffffff
jmp 0x5ba0bfd
cmp dword [esp + 0x30], 0
je 0x5ba0bb1
mov edi, dword [esp + 0xc]
mov ecx, edi
mov edx, dword [esp + 0x10]
call fcn.05bbe260
mov esi, eax
jmp 0x5ba0bb7
push dword [ebp + 0x10]
mov edx, dword [esp + 0x54]
push ecx
push 3
push 0
push dword [ebp + 8]
mov ecx, edi
call fcn.05ba1f90
mov ecx, dword [esp + 0x24]
add esp, 0x14
or esi, eax
xor eax, eax
mov dword [esp + 0x5c], esi
xor esi, esi
cmp ax, word [ecx + 0x22]
jge 0x5ba0ce2
xor edi, edi
mov eax, dword [ecx + 4]
mov edx, esi
movzx eax, word [edi + eax + 0xe]
mov dword [esp + 0x7c], eax
call fcn.05bcd9f0
movsx edx, ax
add edx, dword [esp + 0x80]
cmp dword [esp + 0x5c], 0xffffffff
mov dword [esp + 0x60], edx
je 0x5ba0cb8
cmp esi, 0x20
jge 0x5ba0c57
mov eax, 1
mov ecx, esi
shl eax, cl
test dword [esp + 0x5c], eax
jne 0x5ba0cb8
test byte [esp + 0x7c], 1
jne 0x5ba0cb8
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x5ba0c7d
push 0
push edx
push 0
mov edx, 0x4b
mov ecx, eax
call fcn.05bf9640
jmp 0x5ba0ccb
mov edx, dword [esp + 8]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edx + 0x6c], eax
mov eax, edx
mov edx, dword [esp + 0x60]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x4b
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x5ba0cce
mov ecx, dword [esp + 8]
push edx
mov edx, dword [esp + 0x14]
push esi
push dword [esp + 0x1c]
call fcn.05bdbb70
add esp, 0xc
mov ecx, dword [esp + 0x10]
inc esi
add edi, 0x10
movsx eax, word [ecx + 0x22]
cmp esi, eax
jl 0x5ba0c13
cmp byte [esp + 0x1b], 0
jne 0x5ba0d4e
cmp dword [esp + 0x3c], 0
jne 0x5ba0d4e
mov esi, dword [esp + 8]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x5ba0d1b
push 0
push dword [esp + 0x4c]
mov edx, 0x50
mov ecx, esi
push dword [esp + 0x24]
call fcn.05bf9640
add esp, 0xc
jmp 0x5ba0d4e
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x50
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x2b], 2
jne 0x5ba0d69
mov dword [esp + 0x80], 0xffffffff
jmp 0x5ba0d8d
push dword [ebp + 0x10]
mov edx, ecx
mov ecx, dword [esp + 0x10]
push eax
push 1
push 1
push dword [ebp + 8]
call fcn.05ba1f90
mov dword [esp + 0x94], eax
add esp, 0x14
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 0x22]
xor edi, edi
mov edx, dword [esp + 0x94]
mov esi, edx
mov dword [esp + 0x40], edi
mov dword [esp + 0x5c], edi
cmp di, cx
jge 0x5ba0eb7
xor edx, edx
mov dword [esp + 0x5c], edx
movsx eax, word [eax + 0x20]
cmp edi, eax
jne 0x5ba0de6
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x5ba105d
mov ecx, dword [esp + 8]
mov edx, 0x4b
push 0
push esi
push 0
call fcn.05bf9640
add esp, 0xc
jmp 0x5ba0e8a
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
movzx eax, word [eax + edx + 0xe]
test al, 0x60
je 0x5ba0e05
test al, 0x20
lea eax, [esi - 1]
cmove eax, esi
mov esi, eax
jmp 0x5ba0e8a
mov eax, dword [esp + 0x20]
mov eax, dword [eax + edi*4]
test eax, eax
js 0x5ba100a
cmp dword [esp + 0x28], 0
je 0x5ba0f5e
cmp byte [esp + 0x1a], 2
je 0x5ba0e2a
mov ecx, dword [esp + 0x70]
movzx ecx, cx
movsx edx, cx
add edx, eax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x5ba0e55
push esi
push edx
push dword [esp + 0x2c]
mov edx, 0x5e
mov ecx, eax
call fcn.05bf9640
add esp, 0xc
jmp 0x5ba0e8a
mov edi, dword [esp + 8]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, edi
mov edi, dword [esp + 0x24]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x5e
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x10]
inc edi
add dword [esp + 0x5c], 0x10
inc esi
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x40], edi
movzx ecx, word [eax + 0x22]
movsx eax, cx
cmp edi, eax
mov eax, dword [esp + 0x10]
jl 0x5ba0db3
mov edx, dword [esp + 0x94]
test byte [eax + 0x1c], 0x60
je 0x5ba0ece
mov ecx, dword [esp + 0xc]
push eax
call fcn.05bbd120
mov eax, dword [esp + 0x14]
add esp, 4
test byte [esp + 0xcc], 1
mov esi, dword [esp + 8]
je 0x5ba1296
push dword [esp + 0x94]
mov edx, eax
mov ecx, esi
call fcn.05bbd440
mov edi, dword [esp + 0x38]
add esp, 4
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0xc]
push edi
push dword [ebp + 0x10]
push dword [esp + 0x24]
push dword [esp + 0x1c]
push 1
push dword [ebp + 8]
push 0x81
call fcn.05ba2060
add esp, 0x1c
cmp byte [esp + 0x1a], 2
je 0x5ba1204
cmp dword [esp + 0x3c], 0
je 0x5ba110e
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x5ba10b7
push dword [esp + 0x44]
mov edx, 0x1c
mov ecx, esi
push edi
push dword [esp + 0x1c]
call fcn.05bf9640
add esp, 0xc
mov edx, eax
jmp 0x5ba10ea
mov ecx, dword [ebp + 8]
lea eax, [eax + eax*4]
mov edi, dword [ecx + eax*4 + 8]
mov eax, dword [esp + 0xc]
cmp dword [eax + 8], 0
je 0x5ba0e86
push esi
mov edx, edi
mov ecx, eax
call fcn.05bda5a0
add esp, 4
mov dword [esp + 0x7c], eax
cmp eax, esi
je 0x5ba0e86
test edi, edi
je 0x5ba0fa8
test dword [edi + 4], 0x400000
jne 0x5ba0fa1
cmp byte [edi], 0xb0
jne 0x5ba0fa8
mov edx, 0x50
jmp 0x5ba0fad
mov edx, 0x51
mov ecx, dword [esp + 0xc]
mov edi, dword [ecx + 8]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x5ba0fcf
push 0
push esi
push eax
mov ecx, edi
call fcn.05bf9640
add esp, 0xc
jmp 0x5ba0e86
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
lea eax, [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0x10], 0
mov word [eax + 2], cx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 4], ecx
mov byte [eax + 1], 0
jmp 0x5ba0e86
test dword [esp + 0xcc], 1
je 0x5ba1091
cmp edi, 0x1f
jg 0x5ba1091
mov eax, 1
mov ecx, edi
shl eax, cl
test dword [esp + 0x80], eax
jne 0x5ba1091
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x5ba105d
mov ecx, dword [esp + 8]
mov edx, 0x4b
push 0
push esi
push 0
call fcn.05bf9640
add esp, 0xc
jmp 0x5ba0e8a
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4], 0x4b
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x5ba0e8a
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 8]
push esi
push edi
push dword [esp + 0x1c]
call fcn.05bdbb70
add esp, 0xc
mov dword [esp + 0xbc], 0
jmp 0x5ba0e8a
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 8]
mov dword [eax + ecx*4], 0x1c
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x5ba115f
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0xac]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x5ba115f
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x5ba1130
push dword [esp + 0x1c]
mov edx, 0x1f
mov ecx, esi
push edi
push dword [esp + 0x1c]
call fcn.05bf9640
add esp, 0xc
jmp 0x5ba115f
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0x94]
xor esi, esi
mov edi, eax
cmp cx, word [edx + 0x22]
jge 0x5ba11e3
mov dword [esp + 0x80], ecx
mov eax, dword [edx + 4]
movzx eax, word [ecx + eax + 0xe]
test al, 0x60
je 0x5ba1199
test al, 0x20
lea eax, [edi - 1]
cmove eax, edi
mov edi, eax
jmp 0x5ba11c8
mov eax, dword [esp + 0x20]
cmp dword [eax + esi*4], 0
jge 0x5ba11c8
movsx eax, word [edx + 0x20]
cmp esi, eax
je 0x5ba11c8
mov ecx, dword [esp + 8]
push edi
push esi
push dword [esp + 0x1c]
call fcn.05bdbb70
mov ecx, dword [esp + 0x8c]
add esp, 0xc
mov edx, dword [esp + 0x10]
movsx eax, word [edx + 0x22]
inc esi
add ecx, 0x10
inc edi
mov dword [esp + 0x80], ecx
cmp esi, eax
jl 0x5ba1181
mov eax, dword [esp + 0x94]
test byte [edx + 0x1c], 0x60
je 0x5ba129f
mov ecx, dword [esp + 0xc]
push edx
mov edx, eax
call fcn.05bbd120
mov edi, dword [esp + 0x38]
add esp, 4
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x10]
cmp byte [esp + 0x1a], 2
je 0x5ba1581
push 0
push dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x8c]
push eax
push edi
push dword [ebp + 0x10]
push dword [esp + 0x6c]
push dword [esp + 0x34]
push dword [esp + 0x64]
push dword [esp + 0xd0]
push dword [esp + 0x38]
push dword [esp + 0xb0]
call fcn.05bb95a0
add esp, 0x2c
cmp dword [esp + 0x84], 0
jne 0x5ba1265
mov al, byte [esp + 0x58]
test al, al
je 0x5ba1333
cmp dword [esp + 0x3c], 0
je 0x5ba130b
mov ecx, dword [esp + 8]
mov esi, dword [esi + 0x6c]
cmp dword [ecx + 0x70], esi
jg 0x5ba12ac
push dword [esp + 0x44]
mov edx, 0x1c
push edi
push dword [esp + 0x1c]
call fcn.05bf9640
add esp, 0xc
mov esi, eax
jmp 0x5ba12df
mov edi, dword [esp + 0x34]
jmp 0x5ba1204
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 8]
jmp 0x5ba1208
mov edx, dword [esp + 0x14]
lea eax, [esi + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x1c
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 8]
mov eax, dword [eax]
cmp byte [eax + 0x57], 0
jne 0x5ba132f
mov edx, dword [esp + 0xac]
lea ecx, [esi + esi*4]
mov esi, dword [esp + 8]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov al, byte [esp + 0x58]
jmp 0x5ba1337
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x5ba13b3
push dword [esp + 0x1c]
mov edx, 0x1f
mov ecx, esi
push edi
push dword [esp + 0x1c]
call fcn.05bf9640
add esp, 0xc
mov al, byte [esp + 0x58]
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0x30], 0
je 0x5ba135d
mov ecx, dword [esp + 0xc]
movzx eax, al
push eax
push dword [esp + 0x24]
push 0
push edx
mov edx, dword [esp + 0x20]
call fcn.05bbe350
add esp, 0x10
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
push 0xffffffffffffffff
push dword [esp + 0x8c]
push dword [esp + 0xb8]
push dword [esp + 0x20]
call fcn.05bc4610
add esp, 0x10
cmp dword [esp + 0xbc], 0
je 0x5ba1422
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x5ba13ef
push 0
push 0
push dword [esp + 0x1c]
mov edx, 0x8f
mov ecx, esi
call fcn.05bf9640
add esp, 0xc
jmp 0x5ba1422
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 8]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov al, byte [esp + 0x58]
jmp 0x5ba133b
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x8f
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [esp + 0x30], 1
jg 0x5ba1435
cmp byte [esp + 0x58], 0
mov edx, 0x44
je 0x5ba143a
mov edx, 4
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x5ba145c
push dword [esp + 0x48]
mov ecx, esi
push edx
push dword [esp + 0x1c]
mov edx, 0x82
call fcn.05bf9640
add esp, 0xc
jmp 0x5ba148b
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x82
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 8]
cmp esi, 2
jne 0x5ba14b0
mov eax, dword [edx + 0x6c]
test eax, eax
jle 0x5ba14b0
lea ecx, [eax + eax*4]
mov edi, esi
mov eax, dword [edx + 0x68]
mov word [eax + ecx*4 - 0x12], di
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0x12], 0
jne 0x5ba14db
mov ecx, dword [edx]
cmp byte [ecx + 0x57], 0
je 0x5ba1562
push dword [esp + 0x10]
mov edx, 0xfffffffb
call fcn.05bf8580
mov ecx, dword [esp + 0x10]
add esp, 4
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x30], 0
je 0x5ba14fe
movzx eax, byte [esp + 0x58]
push eax
push dword [esp + 0x24]
push dword [esp + 0x50]
push 0
call fcn.05bbe350
add esp, 0x10
mov edx, dword [esp + 0x10]
xor eax, eax
mov ecx, dword [esp + 0xc]
cmp esi, 2
push 0
sete al
push 0
lea eax, [eax*2 + 4]
push eax
push dword [esp + 0x94]
push dword [esp + 0x58]
push dword [esp + 0xc4]
push dword [esp + 0x2c]
call fcn.05bb9210
add esp, 0x1c
cmp dword [esp + 0x30], 0
je 0x5ba1585
movzx eax, byte [esp + 0x58]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
push eax
push dword [esp + 0x24]
push dword [esp + 0x24]
push dword [ebp + 8]
call fcn.05bbda20
add esp, 0x10
jmp 0x5ba1585
mov eax, dword [edx + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x10]
mov byte [eax + ecx*4 - 0x13], 0xfb
mov dword [eax + ecx*4 - 4], edx
mov ecx, dword [esp + 0xc]
jmp 0x5ba14df
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x5ba15ee
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x5ba15b8
mov ecx, dword [esp + 8]
mov edx, 0x56
push 0
push 1
push eax
call fcn.05bf9640
add esp, 0xc
jmp 0x5ba15ee
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0xb8]
mov dword [eax + ecx*4], 0x56
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0xc]
push edi
push dword [ebp + 0x10]
push dword [esp + 0x24]
push dword [esp + 0x1c]
push 2
push dword [ebp + 8]
push 0x81
call fcn.05ba2060
add esp, 0x1c
cmp esi, 1
je 0x5ba16e3
cmp esi, 2
not edi
mov esi, dword [esp + 8]
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0x3c]
jne 0x5ba1669
add eax, dword [ecx + 0x38]
jns 0x5ba164f
push edi
mov edx, esi
call fcn.05bf8c80
mov ecx, dword [esp + 0xc4]
add esp, 4
call fcn.05b89f90
jmp 0x5ba16e7
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edi*4], eax
mov ecx, dword [esp + 0xc0]
call fcn.05b89f90
jmp 0x5ba16e7
add eax, dword [ecx + 0x38]
jns 0x5ba167b
push edi
mov edx, esi
call fcn.05bf8c80
add esp, 4
jmp 0x5ba1684
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edi*4], eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x5ba16ab
mov edx, dword [esp + 0xb4]
mov ecx, esi
push 0
push edx
push dword [esp + 0x2c]
mov edx, 0x27
call fcn.05bf9640
add esp, 0xc
jmp 0x5ba16e7
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xb4]
mov dword [eax + ecx*4], 0x27
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x5ba16e7
mov esi, dword [esp + 8]
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x2c]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x5ba1705
push edx
mov edx, esi
call fcn.05bf8c80
add esp, 4
jmp 0x5ba170e
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x12], 0
jne 0x5ba1731
cmp dword [eax + 0x7c], 0
jne 0x5ba1731
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
jne 0x5ba1731
cmp dword [eax + 0x74], ecx
je 0x5ba1731
mov ecx, eax
call fcn.05bbcdb0
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x5b9f4d9
push str.rows_updated
mov edx, eax
mov ecx, esi
call fcn.05bc5c70
add esp, 4
jmp 0x5b9f4d9
mov eax, dword [ebp + 0x18]
xor edi, edi
mov dword [esp + 0xa0], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x9c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x6c], eax
jmp 0x5b9f4dd
cmp edi, dword [esi + 0x170]
jb 0x5ba1793
mov eax, dword [esi + 0x160]
mov dword [edi], eax
mov dword [esi + 0x160], edi
jmp 0x5ba17ff
cmp dword [esi + 0x220], 0
je 0x5ba17a7
mov edx, edi
mov ecx, esi
call fcn.05c20b70
jmp 0x5ba17ff
cmp dword [0x5c525e8], 0
je 0x5ba17f5
mov eax, dword [0x5c545d8]
test eax, eax
je 0x5ba17c3
push eax
call dword [0x5c52638]
add esp, 4
push edi
call dword [0x5c52614]
sub dword [0x5c54628], eax
add esp, 4
dec dword [0x5c5464c]
push edi
call dword [0x5c5260c]
mov eax, dword [0x5c545d8]
add esp, 4
test eax, eax
je 0x5ba17ff
push eax
call dword [0x5c52640]
jmp 0x5ba17fc
push edi
call dword [0x5c5260c]
add esp, 4
mov edx, dword [esp + 0x74]
mov ecx, esi
call fcn.05bc7e70
mov eax, dword [ebp + 8]
test eax, eax
je 0x5ba181a
mov edx, eax
mov ecx, esi
call fcn.05bdf190
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x5ba182b
mov edx, eax
mov ecx, esi
call fcn.05be0530
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x5ba183f
mov edx, eax
mov ecx, esi
call fcn.05bdf190
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x5ba1853
mov edx, eax
mov ecx, esi
call fcn.05be0530
pop edi
pop esi
mov esp, ebp
pop ebp
ret