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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xfc
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x1d0]
mov esi, dword [edi]
mov dword [esp + 0xcc], eax
mov eax, dword [edi + 0x1d4]
mov dword [edi + 0x1d0], eax
inc eax
mov dword [esp + 0x24], 1
mov dword [edi + 0x1d4], eax
mov dword [esp + 0x14], esi
test ebx, ebx
je 0x100815ba
cmp byte [esi + 0x41], 0
jne 0x100815ba
cmp dword [edi + 0x40], 0
jne 0x100815ba
push 0
push 0
push 0
push 0x15
mov eax, edi
call fcn.1005fc10
add esp, 0x10
test eax, eax
jne 0x100815ba
push 0x30
push eax
lea ecx, [esp + 0xa4]
push ecx
call sub.MSVCR100.dll_memset
mov edx, dword [ebp + 0x10]
add esp, 0xc
cmp byte [edx], 8
ja 0x1007fc81
mov eax, dword [ebx + 0x30]
push eax
push esi
call fcn.10057ab0
mov ecx, 0xfffe
add esp, 8
and word [ebx + 6], cx
mov dword [ebx + 0x30], 0
push 0
push ebx
push edi
call fcn.1007f3a0
mov edx, dword [ebx + 0x30]
mov ecx, dword [ebx]
xor eax, eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov eax, dword [ebx + 0x20]
add esp, 0xc
cmp dword [edi + 0x40], 0
mov dword [esp + 0x68], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x40], ecx
jne 0x100814db
cmp byte [esi + 0x41], 0
jne 0x100814db
movzx eax, word [ebx + 6]
shr eax, 2
and eax, 1
mov dword [esp + 0x44], eax
mov eax, edi
call fcn.1007a5e0
mov esi, eax
mov dword [esp + 0x58], esi
test esi, esi
je 0x1007fd25
mov ecx, dword [esp + 0x40]
cmp dword [ecx], 1
mov edx, dword [ebp + 0x10]
movzx eax, byte [edx]
jle 0x1007fd2e
cmp eax, 0xa
je 0x1007fd17
cmp eax, 0xb
jne 0x1007fd2e
push str.only_a_single_result_allowed_for_a_SELECT_that_is_part_of_an_expression
push edi
call fcn.100289d0
add esp, 8
mov esi, dword [esp + 0x14]
jmp 0x100814db
xor eax, eax
mov dword [esp + 0x50], eax
cmp dword [ebx + 0x34], eax
jne 0x10080004
jmp 0x1007fd44
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x48]
cmp eax, dword [edx]
jge 0x10080004
lea eax, [eax + eax*4]
add eax, eax
mov ecx, edx
lea ebx, [ecx + eax*8 + 8]
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x18], eax
test eax, eax
je 0x1007ffee
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x1007fd8f
test byte [ebx + 0x28], 4
jne 0x1007ffee
mov edx, dword [ebx + 0x1c]
push eax
push edx
push 0x11
call fcn.100445a0
add esp, 0xc
jmp 0x1007ffee
mov eax, dword [ebp + 0xc]
lea edi, [esp + 0x1c]
mov dword [esp + 0x1c], 0
call fcn.100564b0
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
add dword [eax + 0x1cc], ecx
mov edx, dword [esp + 0x18]
movzx edi, word [edx + 6]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x50]
shr edi, 2
and edi, 1
push edi
push ecx
push edx
push eax
mov eax, dword [ebp + 0xc]
call fcn.1007d980
add esp, 0x10
test eax, eax
je 0x1007fdfa
test edi, edi
je 0x1007fded
mov eax, dword [ebp + 0xc]
or word [eax + 6], 4
mov dword [esp + 0x44], 1
mov dword [esp + 0x50], 0xffffffff
jmp 0x1007ffa7
mov eax, dword [esp + 0x48]
cmp dword [eax], 1
jne 0x1007fed0
mov edx, dword [esp + 0x14]
mov ecx, 0x100
test word [edx + 0x3c], cx
jne 0x1007fed0
mov edi, dword [esi + 0x20]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x48]
inc edi
push edi
inc eax
push 0
push eax
mov dword [ecx + 0x48], eax
push 0x14
mov dword [ebx + 0x1c], eax
call fcn.10044490
mov eax, dword [ebx + 0x1c]
mov dword [ebx + 0x18], edi
mov dword [esp + 0xe4], eax
xor eax, eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], eax
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x1d4]
mov word [esp + 0xe0], 0xd
lea edx, [esp + 0xe0]
mov byte [ebx + 0x2c], cl
mov ecx, dword [esp + 0x28]
push edx
push ecx
push eax
call fcn.1007fbd0
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
add esp, 0x1c
push edx
push eax
call fcn.10029e00
mov ecx, dword [ebx + 0x10]
mov word [ecx + 0x1c], ax
mov eax, dword [ebx + 0x1c]
or dword [ebx + 0x28], 4
mov edx, dword [esp + 0xe0]
push eax
push 0x15
mov dword [ebx + 0x20], edx
call fcn.10044540
add esp, 0x10
lea eax, [edi - 1]
mov edx, esi
call fcn.10044ad0
mov eax, dword [ebp + 8]
mov byte [eax + 0x13], 0
mov dword [eax + 0x38], 0
jmp 0x1007ffa7
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x48]
inc eax
push eax
push 0
mov dword [edi + 0x48], eax
push 0x19
mov dword [esp + 0x1c], 0
mov dword [ebx + 0x1c], eax
call fcn.100445a0
mov dword [esp + 0x28], eax
inc eax
add esp, 0xc
test byte [ebx + 0x28], 2
mov dword [ebx + 0x18], eax
jne 0x1007ff0b
mov eax, edi
call fcn.10058070
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x30]
mov cl, byte [edi + 0x1d4]
mov dword [esp + 0xd4], eax
xor eax, eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x18]
lea edx, [esp + 0xd0]
push edx
push eax
mov word [esp + 0xd8], 0xc
push edi
mov byte [ebx + 0x2c], cl
call fcn.1007fbd0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
add esp, 0xc
push ecx
push edx
call fcn.10029e00
mov ecx, dword [ebx + 0x10]
add esp, 8
cmp dword [esp + 0x10], 0
mov word [ecx + 0x1c], ax
je 0x1007ff7b
mov eax, dword [esp + 0x10]
mov edx, esi
call fcn.10044ad0
mov edx, dword [ebx + 0x1c]
push edx
push 0x12
call fcn.10044540
mov ecx, dword [esp + 0x24]
add esp, 8
cmp dword [esi + 0x20], ecx
jbe 0x1007ff9c
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + 4]
mov dword [ecx + edx*4 + 4], eax
mov byte [edi + 0x13], 0
mov dword [edi + 0x38], 0
mov edx, dword [esp + 0x14]
cmp byte [edx + 0x41], 0
jne 0x100814d6
mov ebx, dword [ebp + 0xc]
lea edi, [esp + 0x1c]
mov eax, ebx
mov dword [esp + 0x1c], 0
call fcn.100564b0
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
sub dword [eax + 0x1cc], ecx
mov eax, dword [ebp + 0x10]
cmp byte [eax], 8
mov edx, dword [ebx + 0x20]
mov dword [esp + 0x48], edx
jbe 0x1007ffee
mov ecx, dword [ebx + 0x30]
mov dword [esp + 0x68], ecx
mov edx, dword [ebp + 0xc]
inc dword [esp + 0x50]
cmp dword [edx + 0x34], 0
mov edi, dword [ebp + 8]
mov ebx, edx
je 0x1007fd40
mov eax, dword [ebx]
mov ecx, dword [ebx + 0x24]
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x1c], eax
mov al, byte [ebx + 6]
and al, 1
cmp dword [ebx + 0x34], 0
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], edx
mov byte [esp + 0x84], al
je 0x10080055
mov ecx, dword [ebp + 0x10]
push ecx
mov ecx, ebx
mov edx, edi
call fcn.1007b0a0
mov edx, dword [esp + 0xd0]
add esp, 4
mov dword [edi + 0x1d0], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [ebx + 6]
and al, 5
cmp al, 1
jne 0x10080099
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x68]
push 0xffffffffffffffff
push ecx
call fcn.1005b9c0
add esp, 8
test eax, eax
jne 0x10080099
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x14]
push eax
mov eax, dword [edi]
push eax
mov edx, 0xfffe
and word [edi + 6], dx
push ecx
call fcn.100571c0
add esp, 0xc
mov dword [edi + 0x28], eax
mov dword [esp + 0x38], eax
cmp dword [esp + 0x68], 0
mov ebx, dword [esp + 0x40]
mov edi, dword [ebp + 8]
je 0x100800ed
mov edx, dword [ebx]
mov eax, dword [esp + 0x68]
push edx
push 0
push eax
push edi
call fcn.100790e0
mov ecx, dword [edi + 0x44]
lea edx, [ecx + 1]
push 0xfffffffffffffffa
push eax
mov dword [edi + 0x44], edx
mov edx, dword [esp + 0x80]
mov eax, dword [ebx]
mov edx, dword [edx]
push 0
lea eax, [eax + edx + 1]
push eax
push ecx
push 0x39
mov dword [esp + 0x98], ecx
call fcn.10044600
add esp, 0x28
mov dword [esp + 0x7c], eax
jmp 0x100800f5
mov dword [esp + 0x7c], 0xffffffff
mov eax, dword [ebp + 0x10]
cmp byte [eax], 0xc
jne 0x1008010e
mov ecx, dword [ebx]
mov edx, dword [eax + 4]
push ecx
push edx
push 0x39
call fcn.100445a0
add esp, 0xc
mov eax, esi
call fcn.10044800
mov ebx, dword [ebp + 0xc]
push eax
mov dword [esp + 0x108], eax
push ebx
mov eax, edi
mov dword [ebx + 0x18], 0xffffffff
mov dword [ebx + 0x1c], getpeername
call fcn.1007a630
add esp, 8
cmp dword [ebx + 8], 0
jne 0x1008015c
cmp dword [esp + 0x7c], 0
jl 0x1008015c
mov eax, dword [esp + 0x7c]
mov ecx, esi
call fcn.10044e70
or byte [esp + 0x80], 1
mov byte [eax], 0x3a
test byte [ebx + 6], 1
je 0x100801bd
mov eax, dword [edi + 0x44]
push 0xfffffffffffffffa
push ecx
mov dword [esp + 0x90], eax
inc eax
push 0
mov dword [edi + 0x44], eax
mov eax, dword [ebx]
push 0
push eax
push edi
call fcn.100790e0
mov ecx, dword [esp + 0xa0]
add esp, 0x14
push eax
push 0
push 0
push ecx
push 0x39
call fcn.10044600
mov dword [esp + 0xa4], eax
mov eax, dword [esi + 4]
add esp, 0x18
test eax, eax
je 0x100801b3
mov ecx, dword [esi + 0x20]
lea edx, [ecx + ecx*4]
mov byte [eax + edx*4 - 0x11], 8
mov byte [esp + 0x85], 3
jmp 0x100801c5
mov byte [esp + 0x85], 0
mov edx, dword [esp + 0x38]
xor eax, eax
cmp dword [esp + 0x44], eax
jne 0x100802d4
cmp edx, eax
jne 0x100802d4
mov ecx, dword [ebx]
mov edx, dword [esp + 0x68]
push eax
movzx eax, byte [esp + 0x88]
neg eax
sbb eax, eax
and eax, 0x400
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x54]
push edx
push eax
push ecx
push edi
call fcn.1008fef0
add esp, 0x1c
mov dword [esp + 0x30], eax
test eax, eax
je 0x1007fd25
mov edx, eax
mov ax, word [edx + 0x20]
call fcn.10029eb0
cmp edx, dword [ebx + 0x1c]
ja 0x10080234
jb 0x1008022e
cmp eax, dword [ebx + 0x18]
jae 0x10080234
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], edx
cmp byte [esp + 0x84], 0
je 0x10080250
mov eax, dword [esp + 0x30]
mov al, byte [eax + 0x28]
test al, al
je 0x10080250
mov byte [esp + 0x85], al
mov eax, dword [esp + 0x68]
test eax, eax
je 0x10080274
mov ecx, dword [esp + 0x30]
movsx ecx, byte [ecx + 0x24]
mov dword [esp + 0x6c], ecx
cmp ecx, dword [eax]
jne 0x10080274
mov dword [esp + 0x68], 0
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x7c], 0
jl 0x10080294
test eax, eax
jne 0x10080294
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x58]
call fcn.10044c70
mov ebx, dword [ebp + 0xc]
mov esi, edi
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
mov ecx, dword [ebp + 0x10]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x90]
push edx
lea eax, [esp + 0x78]
push eax
push 0xffffffffffffffff
push ecx
push ebx
push edi
call fcn.10078540
mov edx, dword [esp + 0x54]
add esp, 0x24
push edx
call fcn.10090920
add esp, 4
jmp 0x10081456
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x34], eax
cmp edx, eax
je 0x10080339
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
test eax, eax
jle 0x100802ff
add ecx, 0x16
xor edi, edi
mov word [ecx], di
dec eax
add ecx, 0x18
test eax, eax
jg 0x100802f2
mov eax, dword [edx]
mov ecx, dword [edx + 4]
test eax, eax
jle 0x1008031d
add ecx, 0x16
jmp 0x10080310
xor edx, edx
mov word [ecx], dx
dec eax
add ecx, 0x18
test eax, eax
jg 0x10080310
cmp dword [ebx + 0x1c], 0
ja 0x10080329
cmp dword [ebx + 0x18], 0x64
jbe 0x10080343
mov dword [ebx + 0x18], 0x64
mov dword [ebx + 0x1c], 0
jmp 0x10080343
mov dword [ebx + 0x18], 1
mov dword [ebx + 0x1c], eax
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x38]
push 0xffffffffffffffff
push eax
call fcn.1005b9c0
add esp, 8
test eax, eax
jne 0x10080362
mov dword [esp + 0x34], 1
mov eax, esi
call fcn.10044800
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0xe4], eax
mov eax, dword [eax + 0x48]
inc eax
lea edx, [esp + 0x9c]
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xf0], edx
mov dword [esp + 0xac], eax
test edi, edi
je 0x100803e4
mov ecx, dword [edi]
mov dword [esp + 0xa8], ecx
jmp 0x100803ef
mov dword [esp + 0xa8], 0
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x40]
lea eax, [esp + 0xe4]
push eax
mov dword [esp + 0xb8], edx
call fcn.1005bf80
mov ebx, dword [esp + 0x6c]
lea ecx, [esp + 0xe8]
add esp, 4
push ecx
call fcn.1005bf80
mov ecx, dword [esp + 0x20]
add esp, 4
test ecx, ecx
je 0x1008043a
lea edx, [esp + 0xe4]
push edx
call fcn.1005bf30
add esp, 4
mov eax, dword [esp + 0xbc]
xor esi, esi
mov dword [esp + 0xc0], eax
cmp dword [esp + 0xc8], esi
jle 0x100804a0
xor edi, edi
jmp 0x10080460
or word [esp + 0x100], 8
mov ecx, dword [esp + 0xc4]
mov edx, dword [ecx + edi]
mov ebx, dword [edx + 0x14]
lea eax, [esp + 0xe4]
push eax
call fcn.1005bf80
mov ecx, 0xfff7
and word [esp + 0x104], cx
inc esi
add esp, 4
add edi, 0x10
cmp esi, dword [esp + 0xc8]
jl 0x10080460
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x48]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xb0], eax
cmp byte [ecx + 0x41], 0
jne 0x10081387
mov ebx, dword [esp + 0x38]
xor esi, esi
cmp ebx, esi
je 0x100810f3
mov edi, edx
mov edx, dword [esp + 0xbc]
mov eax, dword [edi + 0x44]
push edx
push esi
mov dword [esp + 0xa8], eax
inc eax
push ebx
push edi
mov dword [edi + 0x44], eax
call fcn.100790e0
mov ecx, dword [esp + 0xb0]
push 0xfffffffffffffffa
push eax
push esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xc4]
push eax
push ecx
push 0x3a
call fcn.10044600
inc dword [edi + 0x48]
mov dword [esp + 0x88], eax
mov eax, dword [edi + 0x48]
mov dword [esp + 0x74], eax
inc eax
mov dword [esp + 0xbc], eax
inc eax
mov dword [esp + 0x54], eax
mov dword [edi + 0x48], eax
mov eax, esi
call fcn.10044800
inc dword [edi + 0x48]
mov edx, dword [edi + 0x48]
mov dword [esp + 0xb8], eax
mov eax, esi
mov dword [esp + 0x50], edx
call fcn.10044800
mov dword [esp + 0x7c], eax
mov eax, dword [edi + 0x48]
lea ecx, [eax + 1]
add eax, dword [ebx]
mov dword [esp + 0xc0], ecx
mov dword [edi + 0x48], eax
mov edx, dword [ebx]
lea ecx, [eax + 1]
add edx, eax
mov eax, dword [esp + 0xbc]
push eax
push 0
push 0x19
mov dword [esp + 0x98], ecx
mov dword [edi + 0x48], edx
call fcn.100445a0
mov ecx, dword [esp + 0x80]
add esp, 0x34
push ecx
push 0
push 0x19
call fcn.100445a0
mov eax, dword [esp + 0xa4]
mov edx, dword [ebx]
add esp, 0xc
lea ecx, [edx + eax - 1]
push ecx
push eax
push 0
push 0x1c
call fcn.10044490
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x38]
push edx
push eax
push 0x11
call fcn.100445a0
mov ecx, dword [esp + 0x50]
add esp, 0x1c
neg ecx
push 0
sbb ecx, ecx
and ecx, 0x800
mov edx, 0x100
or cx, dx
mov edx, dword [esp + 0x4c]
movzx eax, cx
mov ecx, dword [esp + 0x40]
push eax
push 0
push ebx
push ecx
push edx
push edi
call fcn.1008fef0
add esp, 0x1c
mov dword [esp + 0x30], eax
test eax, eax
je 0x10081387
movsx ecx, byte [eax + 0x24]
cmp ecx, dword [ebx]
jne 0x10080618
xor ebx, ebx
mov dword [esp + 0x3c], ebx
jmp 0x1008099a
cmp byte [esp + 0x84], 0
je 0x10080630
mov edx, dword [ebp + 0xc]
test byte [edx + 6], 1
mov eax, str.DISTINCT
je 0x10080635
mov eax, str.GROUP_BY
mov ecx, edi
call fcn.100791d0
mov eax, dword [ebx]
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x3c], 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], eax
test ecx, ecx
jle 0x1008068d
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x20], ecx
add edx, 0xc
mov ecx, eax
jmp 0x10080674
mov edx, dword [esp + 0x24]
cmp dword [edx], eax
jl 0x1008067a
inc ecx
inc eax
add edx, 0x18
dec dword [esp + 0x20]
mov dword [esp + 0x24], edx
jne 0x10080670
mov dword [esp + 0x18], ecx
jmp 0x10080691
mov ecx, dword [esp + 0x18]
mov eax, dword [edi + 0x38]
mov edx, dword [edi + 0x3c]
mov dword [esp + 0x24], edx
cmp ecx, eax
jg 0x100806ab
add edx, ecx
sub eax, ecx
mov dword [edi + 0x3c], edx
mov dword [edi + 0x38], eax
jmp 0x100806ba
mov eax, dword [edi + 0x48]
lea edx, [eax + 1]
add eax, ecx
mov dword [esp + 0x24], edx
mov dword [edi + 0x48], eax
mov eax, edi
call fcn.10059940
mov eax, dword [esp + 0x24]
push eax
push edi
xor cl, cl
mov edx, ebx
call fcn.1005ada0
mov ecx, dword [esp + 0x18]
add esp, 8
cmp dword [esp + 0xbc], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x50], 0
jle 0x100807ad
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0xb8]
add ebx, ecx
mov dword [esp + 0x10], 0
jmp 0x10080710
mov ecx, dword [esp + 0x10]
mov edx, dword [eax + ecx + 0xc]
cmp edx, dword [esp + 0x20]
jl 0x10080792
mov edx, dword [eax + ecx + 4]
mov edi, dword [ebp + 8]
push 0
push ebx
push edx
mov edx, dword [eax + ecx + 8]
mov eax, dword [eax + ecx]
push edx
push eax
call fcn.100598a0
mov ecx, eax
add esp, 0x14
mov dword [esp + 0xc], ecx
cmp ebx, ecx
je 0x10080783
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
cmp dword [edx + 0x54], edi
jg 0x10080760
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080783
mov ecx, dword [esp + 0xc]
mov edx, dword [esi + 4]
inc dword [esi + 0x20]
lea eax, [edi + edi*4]
lea eax, [edx + eax*4]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x22
inc dword [esp + 0x20]
mov eax, dword [esp + 0xb8]
mov edi, dword [ebp + 8]
inc ebx
mov ecx, dword [esp + 0x50]
add dword [esp + 0x10], 0x18
inc ecx
mov dword [esp + 0x50], ecx
cmp ecx, dword [esp + 0xbc]
jl 0x10080710
mov al, byte [edi + 0x13]
test al, al
jne 0x100807bc
inc dword [edi + 0x48]
mov ebx, dword [edi + 0x48]
jmp 0x100807c8
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov ebx, dword [edi + eax*4 + 0x18]
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0xc], eax
cmp dword [ecx + 0x54], eax
jg 0x100807e8
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080815
mov eax, dword [esp + 0xc]
inc dword [esi + 0x20]
mov ecx, dword [esp + 0x24]
lea edx, [eax + eax*4]
mov eax, dword [esi + 4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x18]
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 word [eax], 0x31
mov eax, dword [esp + 0xa0]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0xc], eax
cmp dword [ecx + 0x54], eax
jg 0x10080840
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080867
mov eax, dword [esp + 0xc]
inc dword [esi + 0x20]
mov ecx, dword [esp + 0x20]
lea edx, [eax + eax*4]
mov eax, dword [esi + 4]
lea eax, [eax + edx*4]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x6d
test ebx, ebx
je 0x10080890
mov dl, byte [edi + 0x13]
cmp dl, 8
jae 0x10080890
xor eax, eax
lea ecx, [edi + 0x74]
cmp dword [ecx + 0xc], ebx
je 0x100808e7
inc eax
add ecx, 0x14
cmp eax, 0xa
jl 0x10080878
movzx edx, dl
mov dword [edi + edx*4 + 0x18], ebx
inc byte [edi + 0x13]
mov ebx, dword [ebp + 8]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
mov eax, ebx
call fcn.10059510
mov eax, dword [esp + 0x18]
cmp eax, dword [ebx + 0x38]
jle 0x100808b3
mov ecx, eax
mov dword [ebx + 0x38], ecx
mov dword [ebx + 0x3c], edi
mov edx, dword [esp + 0x30]
push edx
call fcn.10090920
mov edi, dword [ebx + 0x44]
lea eax, [edi + 1]
mov dword [ebx + 0x44], eax
mov al, byte [ebx + 0x13]
add esp, 4
mov dword [esp + 0x20], edi
mov dword [esp + 0xa4], edi
test al, al
jne 0x100808ed
inc dword [ebx + 0x48]
mov ecx, dword [ebx + 0x48]
mov dword [esp + 0x10], ecx
jmp 0x100808fd
mov byte [ecx + 6], 1
jmp 0x10080890
dec al
movzx edx, al
mov byte [ebx + 0x13], al
mov eax, dword [ebx + edx*4 + 0x18]
mov dword [esp + 0x10], eax
mov ebx, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
cmp dword [ecx + 0x54], ebx
jg 0x10080915
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080942
mov eax, dword [esi + 4]
inc dword [esi + 0x20]
mov ecx, dword [esp + 0x10]
lea edx, [ebx + ebx*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x18]
mov byte [eax + 3], 0
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], 0
mov word [eax], 0x3c
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
mov edi, dword [esp + 0xa0]
cmp dword [eax + 0x54], ebx
jg 0x10080961
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080988
mov edx, dword [esi + 4]
inc dword [esi + 0x20]
lea ecx, [ebx + ebx*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x44]
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 4], edi
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x6a
mov eax, dword [ebp + 8]
mov byte [esp + 0x9d], 1
call fcn.10059940
xor ebx, ebx
cmp dword [esp + 0x34], ebx
je 0x100809fe
mov edx, dword [esp + 0x14]
test byte [edx + 0x3c], 4
jne 0x100809fe
cmp dword [esp + 0x3c], ebx
jne 0x100809b9
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x25], bl
je 0x100809fe
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x68], ebx
cmp ecx, dword [esi + 0x20]
jge 0x100809fe
mov eax, ecx
lea edx, [eax + eax*4]
mov eax, dword [esi + 4]
mov ecx, dword [eax + edx*4 + 0x10]
lea edi, [eax + edx*4]
movsx eax, byte [edi + 1]
mov edx, dword [esi]
call fcn.10044af0
mov dword [edi], ebx
mov dword [edi + 4], ebx
mov dword [edi + 8], ebx
mov dword [edi + 0xc], ebx
mov dword [edi + 0x10], ebx
mov byte [edi], 0x9a
mov eax, dword [esi + 0x20]
dec eax
cmp dword [esp + 0x7c], eax
jne 0x100809fe
mov dword [esi + 0x20], eax
mov ecx, dword [esi + 0x20]
mov eax, dword [ebp + 8]
mov dword [esp + 0x24], ecx
call fcn.10059940
cmp dword [esp + 0x3c], ebx
je 0x10080a62
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
mov edx, dword [esp + 0xa0]
mov dword [esp + 0xc], edx
cmp dword [eax + 0x54], edi
jg 0x10080a36
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080a62
mov edx, dword [esi + 4]
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x20]
mov byte [eax + 3], bl
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ebx
mov word [eax], 0x64
mov ecx, dword [esp + 0x38]
xor edi, edi
cmp dword [ecx], ebx
jle 0x10080b04
mov dword [esp + 0x34], ebx
cmp dword [esp + 0x3c], ebx
je 0x10080ac7
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
mov dword [esp + 0xc], eax
cmp dword [edx + 0x54], eax
jg 0x10080a9a
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080af2
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 4]
inc dword [esi + 0x20]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
lea edx, [edi + ecx]
mov byte [eax + 3], bl
mov dword [eax + 8], edi
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ebx
mov word [eax], 0x2f
jmp 0x10080af2
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x38]
lea ecx, [edi + eax]
push ecx
mov ecx, dword [esp + 0x38]
mov byte [esp + 0xa0], 1
mov eax, dword [edx + 4]
mov edx, dword [eax + ecx]
mov eax, dword [ebp + 8]
push edx
push eax
call fcn.1005abc0
add esp, 0xc
mov ecx, dword [esp + 0x38]
add dword [esp + 0x34], 0x18
inc edi
cmp edi, dword [ecx]
jl 0x10080a74
mov eax, dword [esp + 0x5c]
cmp eax, ebx
je 0x10080b0e
inc dword [eax]
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
mov ecx, dword [ecx]
mov dword [esp + 0xc], ecx
cmp dword [edx + 0x54], edi
jg 0x10080b33
push esi
call fcn.10044400
add esp, 4
test eax, eax
je 0x10080b33
mov edi, 1
jmp 0x10080b62
mov ecx, dword [esi + 4]
inc dword [esi + 0x20]
mov edx, dword [esp + 0x98]
lea eax, [edi + edi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xc]
mov byte [eax + 3], bl
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ebx
mov word [eax], 0x2a
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov eax, edi
cmp ecx, ebx
je 0x10080ba8
cmp byte [edx + 0x41], bl
jne 0x10080ba8
cmp edi, ebx
jge 0x10080b7a
mov eax, dword [esi + 0x20]
dec eax
lea eax, [eax + eax*4]
lea edi, [ecx + eax*4]
movsx eax, byte [edi + 1]
mov ecx, dword [edi + 0x10]
call fcn.10044af0
mov eax, dword [esp + 0x5c]
mov dword [edi + 0x10], ebx
cmp eax, ebx
jne 0x10080b9f
mov dword [edi + 0x10], ebx
mov byte [edi + 1], bl
jmp 0x10080bb6
mov dword [edi + 0x10], eax
mov byte [edi + 1], 0xfa
jmp 0x10080bb6
mov ecx, dword [esp + 0x5c]
mov eax, 0xfffffffa
call fcn.10044af0
mov edi, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x34], edi
cmp dword [ecx + 0x54], edi
jg 0x10080bd2
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080bf7
mov eax, dword [esi + 4]
inc dword [esi + 0x20]
mov ecx, dword [esp + 0x34]
lea edx, [edi + edi*4]
lea eax, [eax + edx*4]
inc ecx
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ebx
mov word [eax], 0x2b
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x38]
mov edi, dword [eax + 8]
mov edx, dword [ecx]
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x5c], edx
mov dword [esp + 0xc], eax
cmp dword [ecx + 0x54], eax
jg 0x10080c27
push edi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080c56
mov eax, dword [esp + 0xc]
inc dword [edi + 0x20]
mov ecx, dword [esp + 0x64]
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x98]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x5c]
mov byte [eax + 3], bl
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ebx
mov word [eax], 0x20
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x64]
mov eax, dword [ebp + 8]
call fcn.10059510
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
cmp dword [edx + 0x54], edi
jg 0x10080c7e
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080ca9
mov ecx, dword [esi + 4]
inc dword [esi + 0x20]
mov edx, dword [esp + 0x2c]
lea eax, [edi + edi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x90]
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 word [eax], 0x11
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
cmp dword [edx + 0x54], edi
jg 0x10080cc1
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080cec
mov ecx, dword [esi + 4]
inc dword [esi + 0x20]
mov edx, dword [esp + 0x94]
lea eax, [edi + edi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x44]
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 word [eax], 0x89
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
cmp dword [edx + 0x54], edi
jg 0x10080d04
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080d2c
mov ecx, dword [esi + 4]
inc dword [esi + 0x20]
mov edx, dword [esp + 0x28]
lea eax, [edi + edi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x54]
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 word [eax], 0x11
mov eax, dword [esi + 0x20]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
jbe 0x10080d41
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + 4]
mov dword [ecx + edx*4 + 8], eax
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
dec edx
lea ecx, [esp + 0x9c]
mov dword [eax + 0x58], edx
mov edx, dword [ebp + 8]
push ecx
push edx
call fcn.1007f5e0
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
add esp, 8
cmp dword [eax + 0x54], edi
jg 0x10080d77
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080da0
mov eax, dword [esi + 4]
mov ecx, 1
add dword [esi + 0x20], ecx
lea edx, [edi + edi*4]
lea eax, [eax + edx*4]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x4c]
mov byte [eax + 3], bl
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov word [eax], 0x19
cmp dword [esp + 0x3c], ebx
je 0x10080df3
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
mov edx, dword [esp + 0xa0]
mov dword [esp + 0xc], edx
cmp dword [eax + 0x54], edi
jg 0x10080dc9
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080e41
mov edx, dword [esi + 4]
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x24]
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 word [eax], 5
jmp 0x10080e41
mov eax, dword [esp + 0x30]
push eax
call fcn.10090920
mov ecx, dword [esp + 0x64]
add esp, 4
cmp ecx, dword [esi + 0x20]
jge 0x10080e41
mov eax, ecx
lea edx, [eax + eax*4]
mov eax, dword [esi + 4]
mov ecx, dword [eax + edx*4 + 0x10]
lea edi, [eax + edx*4]
movsx eax, byte [edi + 1]
mov edx, dword [esi]
call fcn.10044af0
mov dword [edi], ebx
mov dword [edi + 4], ebx
mov dword [edi + 8], ebx
mov dword [edi + 0xc], ebx
mov dword [edi + 0x10], ebx
mov byte [edi], 0x9a
mov eax, dword [esi + 0x20]
dec eax
cmp dword [esp + 0x60], eax
jne 0x10080e41
mov dword [esi + 0x20], eax
mov edi, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
cmp dword [ecx + 0x54], edi
jg 0x10080e59
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080e84
mov eax, dword [esi + 4]
inc dword [esi + 0x20]
mov ecx, dword [esp + 0x2c]
lea edx, [edi + edi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x90]
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 word [eax], 0x11
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x10080e9c
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080ec0
mov edx, dword [esi + 4]
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x44]
mov byte [eax + 3], bl
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov word [eax], 0x10
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
mov dword [esp + 0x60], edi
cmp dword [edx + 0x54], edi
jg 0x10080edc
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080f08
mov edx, dword [esi + 4]
mov ecx, 1
add dword [esi + 0x20], ecx
lea eax, [edi + edi*4]
lea eax, [edx + eax*4]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x94]
mov byte [eax + 3], bl
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov word [eax], 0x19
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
cmp dword [edx + 0x54], edi
jg 0x10080f20
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080f44
mov ecx, dword [esi + 4]
inc dword [esi + 0x20]
mov edx, dword [esp + 0x2c]
lea eax, [edi + edi*4]
lea eax, [ecx + eax*4]
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 word [eax], 0x12
mov ecx, dword [esi + 0x18]
or eax, 0xffffffff
sub eax, dword [esp + 0x90]
js 0x10080f60
mov edx, dword [ecx + 0x70]
cmp edx, ebx
je 0x10080f60
mov edi, dword [esi + 0x20]
mov dword [edx + eax*4], edi
mov eax, dword [esi + 0x20]
dec eax
mov dword [ecx + 0x58], eax
mov edi, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
cmp dword [ecx + 0x54], edi
jg 0x10080f7f
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080fa6
mov eax, dword [esi + 4]
inc dword [esi + 0x20]
mov ecx, dword [esp + 0x4c]
lea edx, [edi + edi*4]
lea eax, [eax + edx*4]
lea edx, [edi + 2]
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 word [eax], 0x89
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0xc], eax
cmp dword [ecx + 0x54], eax
jg 0x10080fc6
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10080fea
mov eax, dword [esp + 0xc]
inc dword [esi + 0x20]
mov ecx, dword [esp + 0x2c]
lea edx, [eax + eax*4]
mov eax, dword [esi + 4]
lea eax, [eax + edx*4]
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 word [eax], 0x12
mov eax, dword [ebp + 8]
lea edx, [esp + 0x9c]
push edx
call fcn.1007f4e0
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 8]
add esp, 4
push 0x10
inc edi
push edi
push eax
push ecx
call fcn.1005b440
mov edx, dword [esp + 0x70]
mov eax, dword [ebp + 0x10]
push edx
push edi
push eax
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0xa0]
push ecx
mov ecx, dword [eax]
lea edx, [esp + 0x88]
push edx
mov edx, dword [ebp + 8]
push 0xffffffffffffffff
push ecx
push eax
push edx
call fcn.10078540
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
add esp, 0x34
cmp dword [eax + 0x54], edi
jg 0x10081056
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x1008107a
mov edx, dword [esi + 4]
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x2c]
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 word [eax], 0x12
mov ecx, dword [esi + 0x18]
or eax, 0xffffffff
sub eax, dword [esp + 0x54]
js 0x10081093
mov edx, dword [ecx + 0x70]
cmp edx, ebx
je 0x10081093
mov edi, dword [esi + 0x20]
mov dword [edx + eax*4], edi
mov edx, dword [esi + 0x20]
dec edx
lea eax, [esp + 0x9c]
mov dword [ecx + 0x58], edx
mov ecx, dword [ebp + 8]
push eax
push ecx
call fcn.1007f400
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
add esp, 8
cmp dword [edx + 0x54], edi
jg 0x100810ca
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x1008142c
mov ecx, dword [esi + 4]
inc dword [esi + 0x20]
mov edx, dword [esp + 0x28]
lea eax, [edi + edi*4]
lea eax, [ecx + eax*4]
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 word [eax], 0x12
jmp 0x1008142c
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x9c]
mov dword [esp + 0x54], esi
call fcn.1007e050
mov edi, eax
mov dword [esp + 0xc], edi
cmp edi, esi
je 0x100812e0
mov ebx, dword [ebp + 8]
mov esi, dword [edi + 0x44]
mov ecx, dword [ebx]
call fcn.10076c40
mov esi, eax
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x28], eax
inc eax
mov dword [ebx + 0x44], eax
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x20]
mov dword [esp + 0x4c], eax
mov ecx, esi
mov eax, ebx
call fcn.10065b40
mov ecx, dword [edi]
mov edx, dword [edi + 0x20]
push ecx
push 0
push edx
push esi
mov eax, ebx
call fcn.1005fca0
add esp, 0x10
test byte [edi + 0x2c], 0x20
je 0x1008116f
mov eax, edi
call fcn.10061040
mov dword [esp + 0x2c], eax
jmp 0x10081173
mov eax, dword [esp + 0x2c]
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x100811ad
lea ebx, [ebx]
test byte [ecx + 0x34], 4
jne 0x100811a2
movzx edx, word [ecx + 0x2c]
cmp dx, word [edi + 0x2a]
jge 0x100811a2
cmp dword [ecx + 0x24], 0
jne 0x100811a2
test eax, eax
je 0x100811a0
cmp dx, word [eax + 0x2c]
jge 0x100811a2
mov eax, ecx
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x10081180
mov dword [esp + 0x2c], eax
test eax, eax
je 0x100811c6
mov ecx, dword [eax + 0x28]
push eax
push ebx
mov dword [esp + 0x54], ecx
call fcn.100665f0
add esp, 8
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x28]
push 1
push esi
mov esi, dword [esp + 0x60]
push edx
push eax
push 0x36
mov eax, esi
call fcn.10044750
add esp, 0x14
cmp dword [esp + 0x10], 0
je 0x1008122e
mov ecx, dword [esi + 4]
mov edx, dword [esi]
test ecx, ecx
je 0x10081220
cmp byte [edx + 0x41], 0
jne 0x10081220
mov eax, dword [esi + 0x20]
lea eax, [eax + eax*4 - 5]
lea edi, [ecx + eax*4]
movsx eax, byte [edi + 1]
mov ecx, dword [edi + 0x10]
call fcn.10044af0
mov ecx, dword [esp + 0x10]
mov dword [edi + 0x10], ecx
mov byte [edi + 1], 0xfa
mov edi, dword [esp + 0xc]
jmp 0x1008122e
mov ecx, dword [esp + 0x10]
mov eax, 0xfffffffa
call fcn.10044af0
mov edx, dword [esp + 0xc4]
mov eax, dword [edx + 8]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0xc], eax
cmp dword [ecx + 0x54], eax
jg 0x1008125c
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x10081287
mov eax, dword [esp + 0xc]
inc dword [esi + 0x20]
mov ecx, dword [esp + 0x28]
lea edx, [eax + eax*4]
mov eax, dword [esi + 4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x4c]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x32
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0xc], eax
cmp dword [ecx + 0x54], eax
jg 0x100812a7
push esi
call fcn.10044400
add esp, 4
test eax, eax
jne 0x100812ce
mov eax, dword [esp + 0xc]
inc dword [esi + 0x20]
mov ecx, dword [esp + 0x28]
lea edx, [eax + eax*4]
mov eax, dword [esi + 4]
lea eax, [eax + edx*4]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x3d
mov eax, dword [esp + 0x2c]
mov edx, edi
mov ecx, ebx
call fcn.1007fac0
jmp 0x100813dd
mov edx, dword [ebp + 0xc]
xor bl, bl
mov dword [esp + 0x28], esi
cmp dword [edx + 0x2c], esi
jne 0x10081342
lea edi, [esp + 0x28]
lea eax, [esp + 0x9c]
call fcn.1007dfe0
mov bl, al
test bl, bl
je 0x1008133e
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
push 0
push eax
push edi
call fcn.100571c0
mov esi, eax
add esp, 0xc
mov dword [esp + 0x54], esi
test esi, esi
je 0x10081342
cmp byte [edi + 0x41], 0
jne 0x10081342
mov edx, dword [esi + 4]
cmp bl, 1
setne cl
mov byte [edx + 0xc], cl
mov eax, dword [esi + 4]
mov ecx, dword [eax]
mov byte [ecx], 0x9a
jmp 0x10081342
mov esi, dword [esp + 0x28]
mov edi, dword [ebp + 8]
lea edx, [esp + 0x9c]
push edx
push edi
call fcn.1007f400
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x50]
push 0
movzx ecx, bl
push ecx
push 0
push esi
push edx
push eax
push edi
call fcn.1008fef0
mov edi, eax
add esp, 0x24
test edi, edi
jne 0x10081390
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x14]
push ecx
push edx
call fcn.10057ab0
add esp, 8
mov esi, dword [esp + 0x14]
jmp 0x100814d8
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x9c]
push eax
push ecx
call fcn.1007f5e0
add esp, 8
cmp byte [edi + 0x24], 0
jle 0x100813be
mov edx, dword [edi + 0x34]
mov esi, dword [esp + 0x58]
push edx
push 0
push 0x10
call fcn.100445a0
add esp, 0xc
push edi
call fcn.10090920
lea eax, [esp + 0xa0]
add esp, 4
push eax
mov eax, dword [ebp + 8]
call fcn.1007f4e0
mov ebx, dword [ebp + 8]
add esp, 4
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x1c]
push 0x10
push esi
push ecx
push ebx
mov dword [esp + 0x78], 0
call fcn.1005b440
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
push esi
push esi
push edx
push 0
push 0
push 0xffffffffffffffff
push ecx
push eax
push ebx
call fcn.10078540
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x48]
add esp, 0x34
push edx
push eax
call fcn.10057ab0
mov esi, dword [esp + 0x60]
add esp, 8
mov ecx, dword [esi + 0x18]
or eax, 0xffffffff
sub eax, dword [esp + 0x44]
js 0x10081445
mov edx, dword [ecx + 0x70]
test edx, edx
je 0x10081445
mov edi, dword [esi + 0x20]
mov dword [edx + eax*4], edi
mov edx, dword [esi + 0x20]
mov esi, dword [esp + 0x58]
mov edi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
dec edx
mov dword [ecx + 0x58], edx
cmp byte [esp + 0x85], 3
jne 0x1008146c
mov eax, str.DISTINCT
mov ecx, edi
call fcn.100791d0
cmp dword [esp + 0x68], 0
je 0x100814a5
cmp dword [esp + 0x6c], 0
mov eax, str.RIGHT_PART_OF_ORDER_BY
jg 0x10081484
mov eax, str.ORDER_BY
mov ecx, edi
call fcn.100791d0
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
push eax
push edx
lea eax, [esp + 0x70]
push eax
push ebx
push edi
call fcn.100793d0
add esp, 0x14
mov ecx, dword [esi + 0x18]
or eax, 0xffffffff
sub eax, dword [esp + 0x104]
js 0x100814c1
mov edx, dword [ecx + 0x70]
test edx, edx
je 0x100814c1
mov ebx, dword [esi + 0x20]
mov dword [edx + eax*4], ebx
mov edx, dword [esi + 0x20]
mov esi, dword [esp + 0x14]
dec edx
mov dword [ecx + 0x58], edx
mov dword [esp + 0x24], 0
jmp 0x100814db
mov esi, edx
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0xcc]
mov dword [edi + 0x1d0], eax
test ebx, ebx
jne 0x1008150b
mov ecx, dword [ebp + 0x10]
cmp byte [ecx], 9
jne 0x1008150b
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x48]
push edx
push eax
push edi
call fcn.10079e20
add esp, 0xc
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x10081557
cmp dword [esi + 0x208], 0
je 0x10081528
mov ecx, esi
call fcn.10025e00
jmp 0x10081557
cmp eax, dword [esi + 0x114]
jb 0x1008154e
cmp eax, dword [esi + 0x118]
jae 0x1008154e
mov ecx, dword [esi + 0x110]
mov dword [eax], ecx
dec dword [esi + 0xfc]
mov dword [esi + 0x110], eax
jmp 0x10081557
push eax
call fcn.10025d60
add esp, 4
mov eax, dword [esp + 0xc4]
test eax, eax
je 0x100815b1
cmp dword [esi + 0x208], 0
je 0x1008157b
mov ecx, esi
call fcn.10025e00
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, dword [esi + 0x114]
jb 0x100815a8
cmp eax, dword [esi + 0x118]
jae 0x100815a8
mov edx, dword [esi + 0x110]
mov dword [eax], edx
dec dword [esi + 0xfc]
mov dword [esi + 0x110], eax
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push eax
call fcn.10025d60
add esp, 4
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret