Function at 0x5b4f00
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xcc
push ebx
mov ebx, dword [esp + 0xd8]
push esi
mov esi, dword [esp + 0xd8]
mov eax, dword [esi + 0x1f0]
mov dword [esp + 0xac], eax
mov eax, dword [esi + 0x1f4]
push edi
mov edi, dword [esi]
mov dword [esi + 0x1f0], eax
inc eax
mov dword [esp + 0xc], 1
mov dword [esi + 0x1f4], eax
mov dword [esp + 0x10], edi
test ebx, ebx
je 0x5b4f6b
cmp byte [edi + 0x40], 0
jne 0x5b4f6b
cmp dword [esi + 0x44], 0
jne 0x5b4f6b
push 0
push 0
push 0
push 0x15
mov eax, esi
call fcn.005773f0
add esp, 0x10
test eax, eax
je 0x5b4f7a
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0xcc
ret
mov ecx, dword [esp + 0xe4]
xor eax, eax
cmp byte [ecx], 4
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
ja 0x5b4fd0
mov edx, dword [ebx + 0x38]
push edx
push edi
call fcn.0056e900
mov eax, 0xfffe
add esp, 8
and word [ebx + 6], ax
mov dword [ebx + 0x38], 0
push ebp
push 0
push ebx
push esi
call fcn.005b4ea0
mov ecx, dword [ebx + 0x38]
mov edx, dword [ebx + 0x28]
mov eax, dword [ebx]
add esp, 0xc
cmp dword [esi + 0x44], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x54], eax
jne 0x5b67bc
cmp byte [edi + 0x40], 0
jne 0x5b67bc
movzx eax, word [ebx + 6]
shr eax, 2
and eax, 1
mov edi, esi
mov dword [esp + 0x48], eax
call fcn.0057a370
mov ebp, eax
test ebp, ebp
je 0x5b67b8
mov edx, dword [esp + 0x54]
cmp dword [edx], 1
mov ecx, dword [esp + 0xe8]
movzx eax, byte [ecx]
jle 0x5b5053
cmp eax, 6
je 0x5b5041
cmp eax, 7
jne 0x5b5053
push str.only_a_single_result_allowed_for_a_SELECT_that_is_part_of_an_expression
call fcn.00573960
add esp, 4
jmp 0x5b67b8
cmp dword [ebx + 0x3c], 0
mov dword [esp + 0x34], 0
jne 0x5b5392
mov eax, dword [esp + 0x34]
lea esp, [esp]
mov edi, dword [esp + 0x44]
movzx ecx, byte [edi]
cmp eax, ecx
jge 0x5b5392
lea edx, [eax + eax*8]
mov eax, dword [edi + edx*8 + 0x1c]
lea edi, [edi + edx*8 + 8]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x5b5378
mov eax, dword [edi + 0x18]
test eax, eax
je 0x5b50bd
test byte [edi + 0x24], 4
jne 0x5b5378
push eax
mov eax, dword [edi + 0x1c]
push eax
push 0x11
mov eax, ebp
call fcn.0056cfb0
add esp, 0xc
jmp 0x5b5378
mov ecx, ebx
call fcn.005644a0
add dword [esi + 0x1ec], eax
mov ecx, dword [esp + 0x1c]
movzx eax, word [ecx + 6]
mov edx, dword [esp + 0x48]
shr eax, 2
and eax, 1
push eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
push edx
push eax
push esi
mov eax, ebx
call fcn.00583df0
add esp, 0x10
test eax, eax
je 0x5b5117
cmp dword [esp + 0x24], 0
je 0x5b510a
or word [ebx + 6], 4
mov dword [esp + 0x48], 1
mov dword [esp + 0x34], 0xffffffff
jmp 0x5b533a
mov ecx, dword [esp + 0x44]
cmp byte [ecx], 1
jne 0x5b526f
mov edx, 0x100
test word [ebx + 6], dx
jne 0x5b526f
mov ecx, dword [esp + 0x14]
mov eax, edx
test word [ecx + 0x3c], ax
jne 0x5b526f
mov ecx, 1
add dword [esi + 0x4c], ecx
mov eax, dword [esi + 0x4c]
mov dword [edi + 0x1c], eax
add dword [esi + 0x4c], ecx
mov edx, dword [esi + 0x4c]
or ebx, 0xffffffff
mov eax, esi
mov dword [esp + 0x2c], edx
call fcn.005a5780
push 0x10
mov eax, ebp
call fcn.0056cf10
mov eax, dword [edi + 0x2c]
push eax
push 0x37
mov eax, ebp
call fcn.0056cf60
mov ebx, eax
mov eax, dword [ebp + 4]
add esp, 0xc
test eax, eax
je 0x5b5192
mov ecx, dword [ebp + 0x1c]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4 - 0x11], 1
mov edx, dword [esp + 0x2c]
push edx
push 0
push 0x17
mov eax, ebp
mov dword [edi + 0x18], ebx
call fcn.0056cfb0
mov eax, dword [ebp + 4]
add esp, 0xc
test eax, eax
je 0x5b51ba
mov ecx, dword [ebp + 0x1c]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4 - 0x11], 1
mov eax, dword [edi + 0x1c]
mov ecx, dword [esp + 0x1c]
mov dl, byte [esi + 0x1f4]
mov dword [esp + 0xa8], eax
xor eax, eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
lea eax, [esp + 0xa4]
push eax
push ecx
mov byte [esp + 0xac], 0xa
mov byte [esp + 0xad], 0
push esi
mov byte [edi + 0x28], dl
call fcn.005b4f00
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x20]
mov edx, dword [edi + 0x10]
mov dword [edx + 0x1c], ecx
or dword [edi + 0x24], 4
add esp, 0xc
cmp dword [ebp + 0x1c], ebx
jbe 0x5b5240
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0xac]
lea edx, [ebx + ebx*4]
mov dword [eax + edx*4 + 8], ecx
cmp dword [ebp + 0x1c], ebx
jbe 0x5b5240
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0xb0]
lea edx, [ebx + ebx*4]
mov dword [eax + edx*4 + 0xc], ecx
mov edx, dword [esp + 0x2c]
push edx
push 1
push 0x17
mov eax, ebp
call fcn.0056cfb0
mov eax, dword [edi + 0x1c]
push eax
push 0x14
mov eax, ebp
call fcn.0056cf60
add esp, 0x14
lea eax, [ebx - 1]
mov edx, ebp
call fcn.00562ed0
jmp 0x5b532f
inc dword [esi + 0x4c]
mov eax, dword [esi + 0x4c]
push eax
mov dword [edi + 0x1c], eax
push 0
push 0x17
mov eax, ebp
mov dword [esp + 0x24], 0
call fcn.0056cfb0
mov ebx, eax
add esp, 0xc
test byte [edi + 0x24], 2
lea ecx, [ebx + 1]
mov dword [edi + 0x18], ecx
jne 0x5b52a8
mov eax, esi
call fcn.0057fc00
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x2c]
mov ecx, dword [esp + 0x1c]
mov dl, byte [esi + 0x1f4]
mov dword [esp + 0xa8], eax
xor eax, eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
lea eax, [esp + 0xa4]
push eax
push ecx
mov byte [esp + 0xac], 9
mov byte [esp + 0xad], 0
push esi
mov byte [edi + 0x28], dl
call fcn.005b4f00
mov eax, dword [esp + 0x28]
mov edx, dword [edi + 0x10]
mov ecx, dword [eax + 0x20]
add esp, 0xc
cmp dword [esp + 0x18], 0
mov dword [edx + 0x1c], ecx
je 0x5b5310
mov eax, dword [esp + 0x18]
mov edx, ebp
call fcn.00562ed0
mov edx, dword [edi + 0x1c]
push edx
push 0x12
mov eax, ebp
call fcn.0056cf60
add esp, 8
cmp dword [ebp + 0x1c], ebx
jbe 0x5b532f
mov edx, dword [ebp + 4]
lea ecx, [ebx + ebx*4]
mov dword [edx + ecx*4 + 4], eax
mov dword [esi + 0x3c], 0
mov byte [esi + 0x13], 0
mov edi, dword [esp + 0x14]
cmp byte [edi + 0x40], 0
jne 0x5b67bc
mov edi, dword [esp + 0xe4]
mov ecx, edi
call fcn.005644a0
sub dword [esi + 0x1ec], eax
mov ecx, dword [esp + 0xe8]
cmp byte [ecx], 4
mov eax, dword [edi + 0x28]
mov dword [esp + 0x44], eax
jbe 0x5b5378
mov edx, edi
mov eax, dword [edx + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0xe4]
inc eax
cmp dword [ebx + 0x3c], 0
mov dword [esp + 0x34], eax
je 0x5b5070
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx]
mov edx, dword [ebx + 0x2c]
mov dword [esp + 0x28], eax
mov al, byte [ebx + 6]
mov dword [esp + 0x54], ecx
mov ecx, dword [ebx + 0x34]
and al, 1
cmp dword [ebx + 0x3c], 0
mov dword [esp + 0x38], edx
mov dword [esp + 0x9c], ecx
mov byte [esp + 0x88], al
je 0x5b542e
cmp dword [ebx + 0x44], 0
jne 0x5b5403
xor ecx, ecx
xor edx, edx
mov eax, ebx
mov edi, edi
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], ebx
mov ecx, eax
mov eax, dword [eax + 0x3c]
inc edx
test eax, eax
jne 0x5b53d0
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x68]
test eax, eax
je 0x5b5403
cmp edx, eax
jle 0x5b5403
push str.too_many_terms_in_compound_SELECT
mov edi, esi
call fcn.00573960
add esp, 4
jmp 0x5b67b8
mov ecx, dword [esp + 0xe8]
push ecx
push ebx
mov ecx, esi
call fcn.00594dd0
mov edx, dword [esp + 0xbc]
add esp, 8
pop ebp
pop edi
mov dword [esi + 0x1f0], edx
pop esi
pop ebx
add esp, 0xcc
ret
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x28]
push 0xffffffffffffffff
push eax
call fcn.00564a30
add esp, 8
test eax, eax
jne 0x5b5457
mov ecx, dword [esp + 0x14]
test byte [ecx + 0x3c], 4
jne 0x5b5457
xor edi, edi
mov dword [esp + 0x20], edi
jmp 0x5b545b
mov edi, dword [esp + 0x20]
mov dl, byte [ebx + 6]
and dl, 5
cmp dl, 1
jne 0x5b5588
mov eax, dword [ebx]
mov edi, dword [esp + 0x20]
push 0xffffffffffffffff
push eax
call fcn.00564a30
add esp, 8
test eax, eax
jne 0x5b5584
mov edx, dword [ebx]
push eax
mov eax, dword [esp + 0x18]
push edx
mov ecx, 0xfffe
and word [ebx + 6], cx
push eax
call fcn.0056e600
mov dword [esp + 0x2c], 0
mov edi, dword [esp + 0x2c]
add esp, 0xc
mov dword [ebx + 0x30], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0xffffffff
mov ecx, dword [esp + 0xe8]
cmp byte [ecx], 9
jne 0x5b54db
mov edx, dword [esp + 0x54]
mov eax, dword [edx]
mov edx, dword [ecx + 4]
push eax
push edx
push 0x35
mov eax, ebp
call fcn.0056cfb0
add esp, 0xc
mov eax, ebp
call fcn.0056d000
push eax
mov dword [esp + 0xdc], eax
push ebx
mov eax, esi
mov dword [ebx + 0x20], 0xffffffff
mov dword [ebx + 0x24], connect
call fcn.0057a3a0
add esp, 8
cmp dword [ebx + 8], 0
jne 0x5b5523
cmp dword [esp + 0x2c], 0
jl 0x5b5523
mov eax, dword [esp + 0x2c]
mov ecx, ebp
call fcn.00562ef0
mov byte [eax], 0x36
or word [ebx + 6], 0x40
test byte [ebx + 6], 1
je 0x5b55c8
mov eax, dword [esi + 0x48]
mov dword [esp + 0x8c], eax
inc eax
mov dword [esi + 0x48], eax
mov eax, dword [ebx]
push 0xfffffffffffffffa
push esi
call fcn.0058c0b0
add esp, 4
push eax
mov eax, dword [esp + 0x94]
push 0
push 0
push eax
push 0x35
mov eax, ebp
call fcn.00575b20
mov dword [esp + 0xa8], eax
mov eax, dword [ebp + 4]
add esp, 0x18
test eax, eax
je 0x5b557a
mov ecx, dword [ebp + 0x1c]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4 - 0x11], 8
mov byte [esp + 0x89], 3
jmp 0x5b55d0
mov edi, dword [esp + 0x20]
test edi, edi
je 0x5b54b0
push esi
mov eax, edi
call fcn.0058c0b0
mov ecx, dword [esi + 0x48]
push 0xfffffffffffffffa
push eax
mov dword [edi + 4], ecx
inc dword [esi + 0x48]
mov edx, dword [edi]
mov eax, dword [edi + 4]
push 0
add edx, 2
push edx
push eax
push 0x35
mov eax, ebp
call fcn.00575b20
add esp, 0x1c
mov dword [esp + 0x2c], eax
mov dword [ebx + 0x18], eax
jmp 0x5b54b8
mov byte [esp + 0x89], 0
mov edx, dword [esp + 0x28]
xor eax, eax
cmp dword [esp + 0x48], eax
jne 0x5b56d5
cmp edx, eax
jne 0x5b56d5
movzx edx, byte [esp + 0x88]
mov ecx, dword [esp + 0x38]
push eax
mov eax, dword [ebx]
neg edx
sbb edx, edx
and edx, 0x400
push edx
mov edx, dword [esp + 0x4c]
push eax
push edi
push ecx
push edx
push esi
call fcn.005a5f30
add esp, 0x1c
mov dword [esp + 0x1c], eax
test eax, eax
je 0x5b67b8
mov ax, word [eax + 0x20]
call fcn.0055ea50
cmp edx, dword [ebx + 0x24]
ja 0x5b563a
jb 0x5b5634
cmp eax, dword [ebx + 0x20]
jae 0x5b563a
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], edx
cmp byte [esp + 0x88], 0
je 0x5b5656
mov ecx, dword [esp + 0x1c]
mov al, byte [ecx + 0x27]
test al, al
je 0x5b5656
mov byte [esp + 0x89], al
test edi, edi
je 0x5b566a
mov edx, dword [esp + 0x1c]
cmp byte [edx + 0x24], 0
je 0x5b566a
xor edi, edi
mov dword [esp + 0x20], edi
cmp dword [esp + 0x2c], 0
jl 0x5b5696
test edi, edi
jne 0x5b5696
mov ebx, dword [esp + 0x2c]
push ebp
call fcn.0056d280
mov eax, dword [esp + 0xe8]
mov edi, dword [esp + 0x24]
add esp, 4
mov dword [eax + 0x18], 0xffffffff
mov ebx, eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x34]
mov edx, dword [eax + 0x30]
mov eax, dword [esp + 0xe8]
push ecx
push edx
mov edx, dword [esp + 0x5c]
push eax
lea ecx, [esp + 0x94]
push ecx
push edi
push 0
push 0
push edx
push ebx
push esi
call fcn.0058ba20
mov eax, dword [esp + 0x44]
push eax
call fcn.00571a30
add esp, 0x2c
jmp 0x5b65b4
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], eax
cmp edx, eax
je 0x5b5739
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov ecx, dword [ecx + 8]
test eax, eax
jle 0x5b56fd
add ecx, 0x16
nop
xor edi, edi
mov word [ecx], di
dec eax
add ecx, 0x18
test eax, eax
jg 0x5b56f0
mov eax, dword [edx]
mov ecx, dword [edx + 8]
test eax, eax
jle 0x5b571d
add ecx, 0x16
lea esp, [esp]
xor edx, edx
mov word [ecx], dx
dec eax
add ecx, 0x18
test eax, eax
jg 0x5b5710
cmp dword [ebx + 0x24], 0
mov eax, 0x64
ja 0x5b572d
cmp dword [ebx + 0x20], eax
jbe 0x5b5743
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], 0
jmp 0x5b5743
mov dword [ebx + 0x20], 1
mov dword [ebx + 0x24], eax
mov eax, ebp
call fcn.0056d000
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x60]
mov dword [esp + 0xb8], esi
mov dword [esp + 0xc4], ecx
test eax, eax
je 0x5b57b6
mov edx, dword [eax]
inc edx
mov dword [esp + 0x6c], edx
jmp 0x5b57be
mov dword [esp + 0x6c], 0
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x54]
lea eax, [esp + 0xb8]
push eax
mov dword [esp + 0x74], edi
call fcn.00580400
mov ebx, dword [esp + 0x24]
lea ecx, [esp + 0xbc]
push ecx
call fcn.00580400
mov ecx, dword [esp + 0xa4]
xor ebx, ebx
add esp, 8
cmp ecx, ebx
je 0x5b5808
lea edx, [esp + 0xb8]
push edx
call fcn.005803b0
add esp, 4
cmp dword [esp + 0x84], ebx
mov eax, dword [esp + 0x78]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x34], ebx
jle 0x5b5869
mov dword [esp + 0x18], ebx
mov ecx, dword [esp + 0x80]
or byte [esp + 0xd4], 8
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + edx]
mov ebx, dword [eax + 0x14]
lea ecx, [esp + 0xb8]
push ecx
call fcn.00580400
mov eax, dword [esp + 0x38]
and byte [esp + 0xd8], 0xf7
add dword [esp + 0x1c], 0x10
inc eax
add esp, 4
cmp eax, dword [esp + 0x84]
mov dword [esp + 0x34], eax
jl 0x5b5821
mov edx, dword [esp + 0x14]
cmp byte [edx + 0x40], 0
jne 0x5b67b8
test edi, edi
je 0x5b62de
mov eax, dword [esi + 0x48]
mov dword [esp + 0x64], eax
inc eax
mov dword [esi + 0x48], eax
push esi
mov eax, edi
call fcn.0058c0b0
mov ecx, dword [esp + 0x68]
push 0xfffffffffffffffa
push eax
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x78]
push 0
push eax
push ecx
push 0x36
mov eax, ebp
call fcn.00575b20
mov dword [esp + 0x6c], eax
mov eax, dword [esi + 0x4c]
inc eax
lea ebx, [eax + 1]
mov dword [esp + 0x68], eax
lea eax, [ebx + 1]
mov dword [esp + 0x74], eax
mov dword [esi + 0x4c], eax
mov eax, ebp
mov dword [esp + 0x40], ebx
call fcn.0056d000
inc dword [esi + 0x4c]
mov edx, dword [esi + 0x4c]
mov dword [esp + 0xbc], eax
mov eax, ebp
mov dword [esp + 0x48], edx
call fcn.0056d000
mov edx, dword [edi]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x4c]
lea ecx, [eax + 1]
add eax, edx
mov dword [esi + 0x4c], eax
mov edx, dword [edi]
push ebx
mov dword [esp + 0xb4], ecx
lea ecx, [eax + 1]
add edx, eax
push 0
push 0x17
mov eax, ebp
mov dword [esp + 0x70], ecx
mov dword [esi + 0x4c], edx
call fcn.0056cfb0
mov eax, dword [esp + 0x74]
push eax
push 0
push 0x17
mov eax, ebp
call fcn.0056cfb0
mov eax, dword [esp + 0xc8]
mov ecx, dword [edi]
lea edx, [ecx + eax - 1]
push edx
push eax
push 0
push 0x1a
mov eax, ebp
call fcn.0056ceb0
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x70]
add esp, 0x44
push eax
push ecx
push 0x11
mov eax, ebp
call fcn.0056cfb0
mov edx, dword [esp + 0x44]
push 0
push 0x100
push 0
push edi
push edx
mov eax, dword [esp + 0x64]
push eax
push esi
call fcn.005a5f30
add esp, 0x28
mov dword [esp + 0x1c], eax
test eax, eax
je 0x5b67b8
cmp byte [eax + 0x24], 0
je 0x5b599e
mov dword [esp + 0x18], 0
jmp 0x5b5cab
cmp byte [esp + 0x88], 0
je 0x5b59ba
mov ecx, dword [esp + 0xe4]
test byte [ecx + 6], 1
mov eax, str.DISTINCT
je 0x5b59bf
mov eax, str.GROUP_BY
mov edi, esi
call fcn.00579900
mov edx, dword [esp + 0x28]
mov edi, dword [edx]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x10], edi
inc edi
mov dword [esp + 0x18], 1
mov eax, edi
mov dword [esp + 0x38], edi
mov ecx, edi
test edx, edx
jle 0x5b5a02
mov ebx, dword [esp + 0x74]
add ebx, 0xc
cmp dword [ebx], ecx
jl 0x5b59f6
inc eax
inc ecx
add ebx, 0x18
sub edx, 1
jne 0x5b59f0
mov dword [esp + 0x38], eax
mov ecx, dword [esi + 0x3c]
cmp eax, ecx
mov edx, dword [esi + 0x40]
mov dword [esp + 0x40], edx
jg 0x5b5a1c
add edx, eax
sub ecx, eax
mov dword [esi + 0x40], edx
mov dword [esi + 0x3c], ecx
jmp 0x5b5a2b
mov ecx, dword [esi + 0x4c]
lea edx, [ecx + 1]
add ecx, eax
mov dword [esp + 0x40], edx
mov dword [esi + 0x4c], ecx
mov edx, esi
call fcn.005649e0
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x28]
push eax
xor cl, cl
mov ebx, esi
call fcn.0057fe20
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x68]
lea edx, [ebx + ecx]
push edx
push eax
push 0x42
mov eax, ebp
call fcn.0056cfb0
add esp, 0x10
cmp dword [esp + 0x78], 0
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], 0
jle 0x5b5ad2
mov eax, dword [esp + 0x74]
mov ecx, edi
add ebx, ecx
xor edi, edi
mov edi, edi
mov edx, dword [esp + 0x30]
cmp dword [edi + eax + 0xc], edx
jl 0x5b5ac0
mov ecx, dword [edi + eax + 4]
mov edx, dword [edi + eax + 8]
mov eax, dword [edi + eax]
push 0
push ebx
push ecx
push edx
push eax
mov eax, esi
call fcn.00593c70
add esp, 0x14
cmp ebx, eax
je 0x5b5ab7
push ebx
push eax
push 0x1f
mov eax, ebp
call fcn.0056cfb0
add esp, 0xc
inc dword [esp + 0x30]
mov eax, dword [esp + 0x74]
inc ebx
mov ecx, dword [esp + 0x34]
inc ecx
add edi, 0x18
cmp ecx, dword [esp + 0x78]
mov dword [esp + 0x34], ecx
jl 0x5b5a80
mov al, byte [esi + 0x13]
test al, al
jne 0x5b5ae1
inc dword [esi + 0x4c]
mov ebx, dword [esi + 0x4c]
jmp 0x5b5aed
dec al
movzx ecx, al
mov byte [esi + 0x13], al
mov ebx, dword [esi + ecx*4 + 0x1c]
mov eax, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], eax
mov dword [esp + 0x10], eax
jg 0x5b5b08
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b5b37
mov eax, dword [esp + 0x10]
inc dword [ebp + 0x1c]
mov ecx, dword [esp + 0x40]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x38]
mov byte [eax], 0x2d
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], 0
mov byte [eax + 1], 0
mov eax, dword [esp + 0x64]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], eax
mov dword [esp + 0x10], eax
jg 0x5b5b5a
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b5b82
mov eax, dword [esp + 0x10]
mov edx, dword [ebp + 4]
inc dword [ebp + 0x1c]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x30]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax], 0x68
mov byte [eax + 3], 0
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
test ebx, ebx
je 0x5b5bab
mov dl, byte [esi + 0x13]
cmp dl, 8
jae 0x5b5bab
xor eax, eax
lea ecx, [esi + 0x68]
cmp dword [ecx + 0x10], ebx
je 0x5b5bf8
inc eax
add ecx, 0x18
cmp eax, 0xa
jl 0x5b5b93
movzx edx, dl
mov dword [esi + edx*4 + 0x1c], ebx
inc byte [esi + 0x13]
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x38]
push ebx
mov eax, edi
call fcn.00564940
add esp, 4
cmp edi, dword [esi + 0x3c]
jle 0x5b5bc9
mov dword [esi + 0x3c], edi
mov dword [esi + 0x40], ebx
mov eax, dword [esp + 0x1c]
push eax
call fcn.00571a30
mov eax, dword [esi + 0x48]
mov dword [esp + 0x44], eax
mov dword [esp + 0x6c], eax
inc eax
mov dword [esi + 0x48], eax
mov al, byte [esi + 0x13]
add esp, 4
test al, al
jne 0x5b5bfe
inc dword [esi + 0x4c]
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0x30], ecx
jmp 0x5b5c0e
mov byte [ecx + 8], 1
jmp 0x5b5bab
dec al
movzx edx, al
mov byte [esi + 0x13], al
mov eax, dword [esi + edx*4 + 0x1c]
mov dword [esp + 0x30], eax
mov ebx, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], ebx
jg 0x5b5c21
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b5c54
mov edx, dword [ebp + 4]
inc dword [ebp + 0x1c]
lea ecx, [ebx + ebx*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x38]
mov byte [eax], 0x37
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], 0
mov byte [eax + 1], 0
mov ebx, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], ebx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x10], edx
jg 0x5b5c6f
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b5c9b
mov ecx, dword [ebp + 4]
inc dword [ebp + 0x1c]
mov edx, dword [esp + 0x10]
lea eax, [ebx + ebx*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x5c]
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax], 0x65
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov edx, esi
mov byte [esp + 0x61], 1
call fcn.005649e0
mov edi, dword [esp + 0x28]
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x38], edx
mov edx, esi
call fcn.005649e0
cmp dword [esp + 0x18], 0
je 0x5b5cd6
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x64]
push eax
push ecx
push 0x5d
mov eax, ebp
call fcn.0056cfb0
add esp, 0xc
xor ebx, ebx
cmp dword [edi], ebx
jle 0x5b5d7d
cmp dword [esp + 0x18], 0
je 0x5b5d4c
mov eax, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], eax
mov dword [esp + 0x10], eax
jg 0x5b5d02
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b5d34
mov eax, dword [esp + 0x10]
inc dword [ebp + 0x1c]
mov ecx, dword [esp + 0x40]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x48]
mov dword [eax + 4], ecx
lea ecx, [ebx + edx]
mov byte [eax], 0x2b
mov byte [eax + 3], 0
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], 0
mov byte [eax + 1], 0
test ebx, ebx
jne 0x5b5d70
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x5b5d70
mov eax, dword [ebp + 0x1c]
lea edx, [eax + eax*4]
mov byte [ecx + edx*4 - 0x11], 0x20
jmp 0x5b5d70
mov eax, dword [esp + 0x48]
lea ecx, [ebx + eax]
mov eax, dword [esp + 0x28]
push ecx
mov byte [esp + 0x64], 1
mov ecx, dword [eax + 8]
lea edx, [ebx + ebx*2]
mov edx, dword [ecx + edx*8]
push edx
push esi
call fcn.005bbe20
add esp, 0xc
mov eax, dword [esp + 0x28]
inc ebx
cmp ebx, dword [eax]
jl 0x5b5ce0
mov eax, dword [esp + 0x98]
test eax, eax
je 0x5b5d8a
inc dword [eax]
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
mov ecx, dword [esp + 0x28]
mov ebx, dword [ecx]
jg 0x5b5dac
mov edi, ebp
call fcn.0056ce30
test eax, eax
je 0x5b5dac
mov eax, 1
xor ebx, ebx
jmp 0x5b5ddd
mov eax, dword [ebp + 4]
inc dword [ebp + 0x1c]
mov ecx, dword [esp + 0x94]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x48]
mov dword [eax + 0xc], ebx
xor ebx, ebx
mov byte [eax], 0x26
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov eax, esi
mov ecx, dword [ebp + 4]
mov edi, dword [ebp]
cmp ecx, ebx
je 0x5b5e27
cmp byte [edi + 0x40], 0
jne 0x5b5e27
cmp eax, ebx
jge 0x5b5df5
mov eax, dword [ebp + 0x1c]
dec eax
lea eax, [eax + eax*4]
lea esi, [ecx + eax*4]
movsx eax, byte [esi + 1]
mov ecx, dword [esi + 0x10]
call fcn.0056d100
mov eax, dword [esp + 0x98]
mov dword [esi + 0x10], ebx
cmp eax, ebx
jne 0x5b5e1e
mov dword [esi + 0x10], ebx
mov byte [esi + 1], 0
jmp 0x5b5e38
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xfa
jmp 0x5b5e38
mov ecx, dword [esp + 0x98]
mov eax, 0xfffffffa
call fcn.0056d100
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
mov dword [esp + 0x10], esi
jg 0x5b5e4f
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b5e75
mov edx, dword [ebp + 4]
inc dword [ebp + 0x1c]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
lea ecx, [esi + 1]
mov byte [eax], 0x27
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], 0
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [esp + 0x94]
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0xe0]
push ecx
push edx
call fcn.0056ec60
mov esi, dword [ebp + 0x1c]
add esp, 8
cmp dword [ebp + 0x20], esi
jg 0x5b5eaa
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b5eda
mov ecx, dword [ebp + 4]
inc dword [ebp + 0x1c]
mov edx, dword [esp + 0x58]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0xa0]
xor ebx, ebx
mov byte [eax], 0x11
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
jmp 0x5b5edc
xor ebx, ebx
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x5b5eef
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b5f18
mov eax, dword [ebp + 4]
inc dword [ebp + 0x1c]
mov ecx, dword [esp + 0x24]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x5c]
mov byte [eax], 0x80
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x5b5f2b
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b5f54
mov ecx, dword [ebp + 4]
inc dword [ebp + 0x1c]
mov edx, dword [esp + 0x2c]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x3c]
mov byte [eax], 0x11
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov eax, dword [esp + 0x10]
cmp eax, ebx
jl 0x5b5f6d
mov ecx, dword [ebp + 0x1c]
cmp ecx, eax
jbe 0x5b5f6d
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
mov dword [eax + edx*4 + 8], ecx
mov edx, dword [esp + 0xe0]
lea ecx, [esp + 0x60]
push ecx
push edx
call fcn.0058db40
mov esi, dword [ebp + 0x1c]
add esp, 8
cmp dword [ebp + 0x20], esi
jg 0x5b5f95
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b5fbf
mov edx, dword [ebp + 4]
mov ecx, 1
add dword [ebp + 0x1c], ecx
lea eax, [esi + esi*4]
lea eax, [edx + eax*4]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x4c]
mov byte [eax], 0x17
mov byte [eax + 3], bl
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
cmp dword [esp + 0x18], ebx
je 0x5b600b
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
mov edx, dword [esp + 0x64]
mov dword [esp + 0x10], edx
jg 0x5b5fe0
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b6057
mov ecx, dword [ebp + 4]
inc dword [ebp + 0x1c]
mov edx, dword [esp + 0x10]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x38]
mov byte [eax], 5
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
jmp 0x5b6057
mov edx, dword [esp + 0x1c]
push edx
call fcn.00571a30
mov esi, dword [ebp + 4]
add esp, 4
cmp esi, ebx
je 0x5b6057
mov eax, dword [esp + 0x50]
mov edi, dword [ebp]
lea eax, [eax + eax*4]
mov ecx, dword [esi + eax*4 + 0x10]
lea esi, [esi + eax*4]
movsx eax, byte [esi + 1]
call fcn.0056d100
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov byte [esi], 0x97
mov eax, dword [ebp + 0x1c]
dec eax
cmp dword [esp + 0x50], eax
jne 0x5b6057
mov dword [ebp + 0x1c], eax
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x5b606a
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b6096
mov edx, dword [ebp + 4]
inc dword [ebp + 0x1c]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0xa0]
mov byte [eax], 0x11
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x5b60a9
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b60ce
mov ecx, dword [ebp + 4]
inc dword [ebp + 0x1c]
mov edx, dword [esp + 0x5c]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 0x10
mov byte [eax + 3], bl
mov dword [eax + 4], ebx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
mov dword [esp + 0x50], esi
jg 0x5b60e5
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b610f
mov edx, dword [ebp + 4]
mov ecx, 1
add dword [ebp + 0x1c], ecx
lea eax, [esi + esi*4]
lea eax, [edx + eax*4]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x24]
mov byte [eax], 0x17
mov byte [eax + 3], bl
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x5b6122
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b6147
mov eax, dword [ebp + 4]
inc dword [ebp + 0x1c]
mov ecx, dword [esp + 0x58]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov byte [eax], 0x12
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
or eax, 0xffffffff
sub eax, dword [esp + 0xa0]
js 0x5b6160
mov ecx, dword [ebp + 0x28]
cmp ecx, ebx
je 0x5b6160
mov edx, dword [ebp + 0x1c]
mov dword [ecx + eax*4], edx
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], esi
jg 0x5b6173
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b619b
mov ecx, dword [ebp + 4]
inc dword [ebp + 0x1c]
mov edx, dword [esp + 0x4c]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
lea ecx, [esi + 2]
mov byte [eax], 0x80
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov eax, dword [ebp + 0x1c]
cmp dword [ebp + 0x20], eax
mov dword [esp + 0x10], eax
jg 0x5b61b6
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b61db
mov eax, dword [esp + 0x10]
inc dword [ebp + 0x1c]
mov ecx, dword [esp + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
lea eax, [eax + edx*4]
mov byte [eax], 0x12
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov eax, dword [esp + 0xe0]
lea edx, [esp + 0x60]
push edx
call fcn.0057aa50
mov eax, dword [esp + 0xa0]
push 8
lea edi, [esi + 1]
mov esi, dword [esp + 0xe8]
push edi
push eax
push esi
call fcn.005ba030
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0xfc]
push ecx
mov ecx, dword [esp + 0x38]
push edi
push edx
lea eax, [esp + 0xa8]
push eax
mov eax, dword [esp + 0x108]
mov edx, dword [eax]
push ecx
push ebx
push ebx
push edx
push eax
push esi
call fcn.0058ba20
mov esi, dword [ebp + 0x1c]
add esp, 0x3c
cmp dword [ebp + 0x20], esi
jg 0x5b624b
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b6270
mov ecx, dword [ebp + 4]
inc dword [ebp + 0x1c]
mov edx, dword [esp + 0x58]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 0x12
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
or eax, 0xffffffff
sub eax, dword [esp + 0x3c]
js 0x5b6286
mov ecx, dword [ebp + 0x28]
cmp ecx, ebx
je 0x5b6286
mov edx, dword [ebp + 0x1c]
mov dword [ecx + eax*4], edx
mov ecx, dword [esp + 0xe0]
lea eax, [esp + 0x60]
push eax
push ecx
call fcn.0058d940
mov esi, dword [ebp + 0x1c]
add esp, 8
cmp dword [ebp + 0x20], esi
jg 0x5b62b4
mov edi, ebp
call fcn.0056ce30
test eax, eax
jne 0x5b659e
xor ebx, ebx
mov eax, dword [ebp + 4]
inc dword [ebp + 0x1c]
mov ecx, dword [esp + 0x2c]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov byte [eax], 0x12
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
jmp 0x5b659e
mov eax, dword [esp + 0xe4]
lea ecx, [esp + 0x60]
mov dword [esp + 0x4c], 0
call fcn.00566990
mov dword [esp + 0x3c], eax
test eax, eax
je 0x5b645a
mov ebx, dword [esp + 0xe0]
mov ecx, dword [ebx]
mov edi, eax
mov esi, dword [edi + 0x44]
call fcn.005663f0
mov ecx, dword [ebx + 0x48]
mov dword [esp + 0x50], ecx
inc ecx
mov dword [ebx + 0x48], ecx
mov edx, dword [edi + 0x20]
mov dword [esp + 0x24], eax
mov ebx, eax
mov eax, dword [esp + 0xe0]
xor esi, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], edx
call fcn.005a5780
mov eax, dword [edi]
mov ecx, dword [edi + 0x20]
push eax
mov eax, dword [esp + 0xe4]
push esi
push ecx
mov edx, ebx
push edx
call fcn.0056f250
add esp, 0x10
test byte [edi + 0x2c], 0x20
je 0x5b6368
mov eax, edi
call fcn.005651b0
mov esi, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x5b6399
nop
test byte [eax + 0x38], 4
jne 0x5b6392
movzx ecx, word [eax + 0x30]
cmp cx, word [edi + 0x2a]
jge 0x5b6392
cmp dword [eax + 0x24], 0
jne 0x5b6392
test esi, esi
je 0x5b6390
cmp cx, word [esi + 0x30]
jge 0x5b6392
mov esi, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x5b6370
test esi, esi
je 0x5b63b6
mov eax, dword [esp + 0xe0]
mov edi, dword [esi + 0x2c]
push esi
call fcn.0058a080
add esp, 4
mov dword [esp + 0x18], eax
jmp 0x5b63ba
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x50]
push 1
push eax
push edi
push ebx
push 0x32
mov eax, ebp
call fcn.00575c60
add esp, 0x14
cmp dword [esp + 0x18], 0
je 0x5b6420
mov ecx, dword [ebp + 4]
mov edi, dword [ebp]
test ecx, ecx
je 0x5b6412
cmp byte [edi + 0x40], 0
jne 0x5b6412
mov eax, dword [ebp + 0x1c]
dec eax
lea edx, [eax + eax*4]
movsx eax, byte [ecx + edx*4 + 1]
lea ebx, [ecx + edx*4]
mov ecx, dword [ebx + 0x10]
call fcn.0056d100
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x10], eax
mov byte [ebx + 1], 0xfa
mov ebx, dword [esp + 0x50]
jmp 0x5b6420
mov ecx, dword [esp + 0x18]
mov eax, 0xfffffffa
call fcn.0056d100
mov ecx, dword [esp + 0x80]
mov edx, dword [ecx + 8]
push edx
push ebx
push 0x2e
mov eax, ebp
call fcn.0056cfb0
push ebx
push 0x38
mov eax, ebp
call fcn.0056cf60
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0xf4]
push eax
mov eax, esi
call fcn.0057ab70
add esp, 0x18
jmp 0x5b6549
mov ecx, dword [esp + 0xe4]
xor edi, edi
xor bl, bl
cmp dword [ecx + 0x34], 0
mov dword [esp + 0x3c], edi
jne 0x5b64c4
lea edi, [esp + 0x3c]
lea eax, [esp + 0x60]
call fcn.00566910
mov bl, al
test bl, bl
je 0x5b64c0
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
push 0
push edx
push eax
call fcn.0056e600
mov edi, eax
add esp, 0xc
mov dword [esp + 0x4c], edi
test edi, edi
je 0x5b64c4
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x40], 0
jne 0x5b64c4
mov eax, dword [edi + 8]
cmp bl, 1
setne dl
mov byte [eax + 0xc], dl
mov ecx, dword [edi + 8]
mov edx, dword [ecx]
mov byte [edx], 0x99
jmp 0x5b64c4
mov edi, dword [esp + 0x3c]
lea eax, [esp + 0x60]
push eax
push esi
call fcn.0058d940
mov eax, dword [esp + 0x40]
movzx cx, bl
push 0
movzx edx, cx
mov ecx, dword [esp + 0x50]
push edx
push 0
push edi
push eax
push ecx
push esi
call fcn.005a5f30
mov edi, eax
add esp, 0x24
test edi, edi
jne 0x5b650c
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x14]
push edx
push eax
call fcn.0056e900
add esp, 8
jmp 0x5b67b8
lea ecx, [esp + 0x60]
push ecx
push esi
call fcn.0058db40
add esp, 8
cmp byte [edi + 0x24], 0
je 0x5b6532
mov edx, dword [edi + 0x34]
push edx
push 0
push 0x10
mov eax, ebp
call fcn.0056cfb0
add esp, 0xc
push edi
call fcn.00571a30
lea eax, [esp + 0x64]
push eax
mov eax, esi
call fcn.0057aa50
add esp, 8
mov edi, esi
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x9c]
push 8
push esi
push ecx
push edi
mov dword [esp + 0x30], 0
call fcn.005ba030
mov edx, dword [esp + 0xf8]
mov eax, dword [esp + 0xf4]
mov ecx, dword [eax]
push esi
push esi
push edx
push 0
push 0
push 0
push 0
push ecx
push eax
push edi
call fcn.0058ba20
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x4c]
push edx
push eax
call fcn.0056e900
add esp, 0x40
or eax, 0xffffffff
sub eax, dword [esp + 0x5c]
js 0x5b65b4
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x5b65b4
mov edx, dword [ebp + 0x1c]
mov dword [ecx + eax*4], edx
cmp byte [esp + 0x89], 3
jne 0x5b6690
mov eax, dword [esp + 0xe0]
cmp byte [eax + 0x1e1], 2
jne 0x5b6690
mov ebx, eax
mov esi, dword [ebx]
mov edi, dword [ebx + 8]
push str.DISTINCT
push str.USE_TEMP_B_TREE_FOR__s
call fcn.005736c0
mov esi, dword [edi + 0x1c]
mov ebx, dword [ebx + 0x1f0]
add esp, 8
cmp dword [edi + 0x20], esi
mov dword [esp + 0x24], eax
jg 0x5b6613
call fcn.0056ce30
test eax, eax
je 0x5b6613
mov eax, 1
xor ebx, ebx
jmp 0x5b6639
mov edx, dword [edi + 4]
inc dword [edi + 0x1c]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov dword [eax + 4], ebx
xor ebx, ebx
mov byte [eax], 0x98
mov byte [eax + 3], 0
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov eax, esi
mov esi, dword [edi + 4]
mov edx, dword [edi]
cmp esi, ebx
je 0x5b6682
cmp byte [edx + 0x40], 0
jne 0x5b6682
cmp eax, ebx
jge 0x5b6650
mov eax, dword [edi + 0x1c]
dec eax
lea eax, [eax + eax*4]
mov ecx, dword [esi + eax*4 + 0x10]
lea esi, [esi + eax*4]
movsx eax, byte [esi + 1]
mov edi, edx
call fcn.0056d100
mov eax, dword [esp + 0x24]
mov dword [esi + 0x10], ebx
cmp eax, ebx
jne 0x5b6679
mov dword [esi + 0x10], ebx
mov byte [esi + 1], 0
jmp 0x5b6690
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xff
jmp 0x5b6690
mov ecx, dword [esp + 0x24]
or eax, 0xffffffff
mov edi, edx
call fcn.0056d100
cmp dword [esp + 0x20], 0
je 0x5b6790
mov ecx, dword [esp + 0xe0]
cmp byte [ecx + 0x1e1], 2
jne 0x5b6767
mov ebx, ecx
mov esi, dword [ebx]
mov edi, dword [ebx + 8]
push str.ORDER_BY
push str.USE_TEMP_B_TREE_FOR__s
call fcn.005736c0
mov esi, dword [edi + 0x1c]
mov ebx, dword [ebx + 0x1f0]
add esp, 8
cmp dword [edi + 0x20], esi
mov dword [esp + 0x24], eax
jg 0x5b66ea
call fcn.0056ce30
test eax, eax
je 0x5b66ea
mov eax, 1
jmp 0x5b6710
mov eax, dword [edi + 4]
inc dword [edi + 0x1c]
xor ecx, ecx
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov byte [eax], 0x98
mov byte [eax + 3], 0
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov eax, esi
mov esi, dword [edi + 4]
mov edx, dword [edi]
xor ebx, ebx
cmp esi, ebx
je 0x5b6759
cmp byte [edx + 0x40], bl
jne 0x5b6759
cmp eax, ebx
jge 0x5b6728
mov eax, dword [edi + 0x1c]
dec eax
lea ecx, [eax + eax*4]
movsx eax, byte [esi + ecx*4 + 1]
lea esi, [esi + ecx*4]
mov ecx, dword [esi + 0x10]
mov edi, edx
call fcn.0056d100
mov eax, dword [esp + 0x24]
mov dword [esi + 0x10], ebx
cmp eax, ebx
jne 0x5b6750
mov dword [esi + 0x10], ebx
mov byte [esi + 1], bl
jmp 0x5b6767
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xff
jmp 0x5b6767
mov ecx, dword [esp + 0x24]
or eax, 0xffffffff
mov edi, edx
call fcn.0056d100
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
mov eax, dword [esp + 0xe0]
push edx
mov edx, dword [esp + 0xe8]
push ecx
push edx
push eax
mov eax, ebp
call fcn.005799c0
add esp, 0x10
or eax, 0xffffffff
sub eax, dword [esp + 0xd8]
js 0x5b67a9
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x5b67a9
mov edx, dword [ebp + 0x1c]
mov dword [ecx + eax*4], edx
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x10], 0
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0xb4]
mov dword [esi + 0x1f0], eax
test ebx, ebx
jne 0x5b67f0
mov ecx, dword [esp + 0xe8]
cmp byte [ecx], 5
jne 0x5b67f0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x44]
push edx
push eax
push esi
call fcn.00583b00
add esp, 0xc
mov eax, dword [esp + 0x74]
test eax, eax
je 0x5b6865
cmp dword [edi + 0x200], 0
je 0x5b6836
cmp eax, dword [edi + 0x10c]
jb 0x5b6822
cmp eax, dword [edi + 0x110]
jae 0x5b6822
movzx eax, word [edi + 0xf0]
mov ecx, dword [edi + 0x200]
add dword [ecx], eax
jmp 0x5b6865
push eax
call dword [0x69fd68]
mov ecx, dword [edi + 0x200]
add esp, 4
add dword [ecx], eax
jmp 0x5b6865
cmp eax, dword [edi + 0x10c]
jb 0x5b685c
cmp eax, dword [edi + 0x110]
jae 0x5b685c
mov ecx, dword [edi + 0x108]
mov dword [eax], ecx
dec dword [edi + 0xf4]
mov dword [edi + 0x108], eax
jmp 0x5b6865
push eax
call fcn.0055d790
add esp, 4
mov eax, dword [esp + 0x80]
test eax, eax
je 0x5b6902
cmp dword [edi + 0x200], 0
je 0x5b68c8
cmp eax, dword [edi + 0x10c]
jb 0x5b68a9
cmp eax, dword [edi + 0x110]
jae 0x5b68a9
movzx eax, word [edi + 0xf0]
mov edi, dword [edi + 0x200]
add dword [edi], eax
pop ebp
pop edi
pop esi
mov eax, ebx
pop ebx
add esp, 0xcc
ret
push eax
call dword [0x69fd68]
mov edi, dword [edi + 0x200]
add esp, 4
add dword [edi], eax
pop ebp
pop edi
pop esi
mov eax, ebx
pop ebx
add esp, 0xcc
ret
cmp eax, dword [edi + 0x10c]
jb 0x5b68f9
cmp eax, dword [edi + 0x110]
jae 0x5b68f9
mov edx, dword [edi + 0x108]
mov dword [eax], edx
dec dword [edi + 0xf4]
pop ebp
mov dword [edi + 0x108], eax
pop edi
pop esi
mov eax, ebx
pop ebx
add esp, 0xcc
ret
push eax
call fcn.0055d790
add esp, 4
pop ebp
pop edi
pop esi
mov eax, ebx
pop ebx
add esp, 0xcc
ret