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

Disassembly:
sub esp, 0xec
push ebx
push ebp
mov ebp, dword [esp + 0xf8]
mov eax, dword [ebp + 0x1cc]
mov dword [esp + 0xcc], eax
mov eax, dword [ebp + 0x1d0]
push esi
mov esi, dword [esp + 0x100]
xor ebx, ebx
push edi
mov edi, dword [ebp]
mov dword [ebp + 0x1cc], eax
inc eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x44], 1
mov dword [ebp + 0x1d0], eax
mov dword [esp + 0x1c], edi
cmp esi, ebx
je 0x10043b63
cmp byte [edi + 0x41], bl
jne 0x10043b63
cmp dword [ebp + 0x40], ebx
jne 0x10043b63
push ebx
push ebx
push ebx
push 0x15
mov eax, ebp
call fcn.10020620
add esp, 0x10
test eax, eax
jne 0x10043b63
push 0x30
lea ecx, [esp + 0xa8]
push ebx
push ecx
call sub.msvcrt.dll_memset
mov edx, dword [esp + 0x114]
add esp, 0xc
cmp byte [edx], 8
ja 0x100429f6
mov eax, dword [esi + 0x30]
push eax
push edi
call fcn.10012d50
mov ecx, 0xfffe
add esp, 8
and word [esi + 6], cx
mov dword [esi + 0x30], ebx
push ebx
push esi
push ebp
call fcn.10033bb0
mov edx, dword [esi + 0x30]
xor eax, 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
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov eax, dword [esi + 0x20]
add esp, 0xc
mov dword [esp + 0x64], edx
mov dword [esp + 0x24], eax
cmp dword [ebp + 0x40], ebx
jne 0x10043b02
cmp byte [edi + 0x41], bl
jne 0x10043b02
movzx eax, word [esi + 6]
mov ecx, dword [esi]
mov edx, dword [ecx]
shr eax, 3
and eax, 1
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x108]
push edx
mov edi, ebp
call fcn.100236b0
add esp, 4
test eax, eax
jne 0x10043b02
xor ebx, ebx
cmp dword [esi + 0x34], ebx
jne 0x10042af9
jmp 0x10042a80
mov eax, dword [esp + 0x24]
cmp ebx, dword [eax]
jge 0x10042af9
lea ecx, [ebx + ebx*4]
shl ecx, 4
mov eax, dword [ecx + eax + 0x1c]
test eax, eax
je 0x10042af2
movzx edi, word [eax + 6]
mov edx, dword [esp + 0x34]
shr edi, 3
and edi, 1
push edi
push edx
push ebx
push ebp
mov eax, esi
call fcn.10023bc0
add esp, 0x10
test eax, eax
je 0x10042aca
test edi, edi
je 0x10042ac7
or word [esi + 6], 8
mov dword [esp + 0x34], 1
or ebx, 0xffffffff
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 0x41], 0
mov eax, dword [esi + 0x20]
mov dword [esp + 0x24], eax
jne 0x10043b02
mov edx, dword [esp + 0x108]
cmp byte [edx], 8
jbe 0x10042af2
mov eax, dword [esi + 0x30]
mov dword [esp + 0x64], eax
inc ebx
cmp dword [esi + 0x34], 0
je 0x10042a80
mov eax, ebp
call fcn.10017ea0
mov ebx, eax
test ebx, ebx
je 0x10043b02
cmp dword [esi + 0x34], 0
je 0x10042b3a
mov ecx, dword [esp + 0x108]
push ecx
push esi
push ebp
call fcn.10032cf0
mov edx, dword [esp + 0xe0]
add esp, 0xc
pop edi
pop esi
mov dword [ebp + 0x1cc], edx
pop ebp
pop ebx
add esp, 0xec
ret
mov eax, dword [esp + 0x24]
cmp dword [eax], 0
mov dword [esp + 0x50], 0
jle 0x10042d8c
mov ecx, eax
add ecx, 0x20
mov dword [esp + 0x10], ecx
jmp 0x10042b60
mov edx, dword [esp + 0x10]
mov eax, dword [edx - 4]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x10042d6b
mov esi, edx
mov eax, dword [esi]
test eax, eax
je 0x10042b9b
test byte [esi + 0x10], 4
jne 0x10042d6b
mov ecx, edx
mov ecx, dword [ecx + 4]
push 0xf
mov esi, ebx
call fcn.10011470
add esp, 4
jmp 0x10042d6b
mov edi, dword [esp + 0x104]
mov eax, edi
call fcn.10009510
add dword [ebp + 0x1c8], eax
test byte [esi + 0xc], 0x20
jne 0x10042bcf
mov edx, dword [esi + 0x18]
mov eax, dword [edi + 0x24]
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x20]
push eax
push ecx
push edx
call fcn.1001b5f0
add esp, 0x10
mov eax, dword [esp + 0x24]
cmp dword [eax], 1
jne 0x10042c8d
test byte [edi + 6], 2
jne 0x10042c8d
mov edx, dword [esp + 0x1c]
mov ecx, pe_nt_image_headers32
test word [edx + 0x3c], cx
jne 0x10042c8d
mov eax, ebx
call fcn.10007940
inc dword [ebp + 0x48]
mov ecx, dword [esp + 0x10]
mov edi, eax
mov eax, dword [ebp + 0x48]
inc edi
push edi
push 0
push eax
push 0x11
mov esi, ebx
mov dword [ecx + 4], eax
call fcn.100113f0
mov esi, dword [esp + 0x20]
mov edx, dword [esi + 4]
push 0xd
lea eax, [esp + 0xa4]
mov dword [esi], edi
call fcn.1000b140
mov ecx, dword [esp + 0x40]
mov dl, byte [ebp + 0x1d0]
push eax
push ecx
push ebp
mov byte [esi + 0x14], dl
call fcn.10042940
mov eax, dword [esp + 0x4c]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
push edx
push eax
call fcn.100030e0
mov ecx, dword [esi - 8]
mov word [ecx + 0x26], ax
mov edx, dword [esp + 0xc0]
or dword [esi + 0x10], 4
mov eax, dword [esi + 4]
mov dword [esi + 8], edx
mov ecx, 0x12
mov esi, ebx
call fcn.10011460
dec edi
push edi
call fcn.100079d0
add esp, 0x2c
jmp 0x10042d44
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
mov edi, dword [esp + 0x10]
push 0x17
xor ecx, ecx
mov esi, ebx
mov dword [esp + 0x18], 0
mov dword [edi + 4], eax
call fcn.10011470
mov dword [esp + 0x50], eax
inc eax
add esp, 4
test byte [edi + 0x10], 2
mov dword [edi], eax
jne 0x10042ccc
mov edi, ebp
call fcn.10019df0
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov edx, dword [edi + 0x18]
push 0xc
lea eax, [esp + 0x94]
call fcn.1000b140
mov esi, dword [esp + 0x30]
mov al, byte [ebp + 0x1d0]
lea ecx, [esp + 0x94]
push ecx
push esi
push ebp
mov byte [edi + 0x14], al
call fcn.10042940
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
push edx
push eax
call fcn.100030e0
mov ecx, dword [edi - 8]
add esp, 0x18
cmp dword [esp + 0x14], 0
mov word [ecx + 0x26], ax
je 0x10042d26
mov edx, dword [esp + 0x14]
push edx
mov esi, ebx
call fcn.100079d0
add esp, 4
mov eax, dword [edi + 4]
mov ecx, 0x10
mov esi, ebx
call fcn.10011460
push eax
mov eax, dword [esp + 0x50]
mov ecx, ebx
call fcn.10007950
add esp, 4
mov eax, ebp
call fcn.10009e10
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x41], 0
jne 0x10043b02
mov eax, dword [esp + 0x104]
call fcn.10009510
sub dword [ebp + 0x1c8], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x24]
add dword [esp + 0x10], 0x50
inc eax
cmp eax, dword [ecx]
mov dword [esp + 0x50], eax
jl 0x10042b60
mov esi, dword [esp + 0x104]
mov eax, dword [esi + 0x24]
mov edx, dword [esi]
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x30], eax
mov al, byte [esi + 6]
and al, 1
mov byte [esp + 0x90], al
movzx eax, byte [esi + 6]
mov dword [esp + 0x28], edx
mov edx, dword [esi + 0x2c]
and al, 9
mov dword [esp + 0x10], ecx
mov dword [esp + 0x80], edx
cmp al, 1
jne 0x10042df9
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x64]
push 0xffffffffffffffff
push ecx
call fcn.10009c20
add esp, 8
test eax, eax
jne 0x10042df9
push eax
mov eax, dword [esp + 0x2c]
mov edx, 0xfffe
and word [esi + 6], dx
push eax
mov eax, dword [esp + 0x24]
call fcn.10012b30
add esp, 8
mov dword [esi + 0x28], eax
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x64]
test edi, edi
je 0x10042e41
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
push 0
push edi
push ebp
call fcn.1002c0f0
mov ecx, dword [ebp + 0x44]
mov edx, ecx
push 0xfffffffffffffffa
push eax
mov eax, dword [esp + 0x3c]
inc ecx
mov dword [ebp + 0x44], ecx
mov ecx, dword [eax]
mov eax, dword [edi]
push edx
lea ecx, [ecx + eax + 1]
push 0x39
push ebx
xor eax, eax
mov dword [esp + 0x8c], edx
call fcn.10015ec0
add esp, 0x20
mov edi, eax
jmp 0x10042e44
or edi, 0xffffffff
mov ecx, dword [esp + 0x108]
cmp byte [ecx], 0xc
mov dword [esp + 0x78], edi
jne 0x10042e70
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
mov ecx, dword [ecx + 4]
push 0x39
mov esi, ebx
call fcn.10011470
mov esi, dword [esp + 0x108]
add esp, 4
mov eax, ebx
call fcn.10011490
push eax
mov dword [esp + 0xfc], eax
push esi
mov eax, ebp
mov dword [esi + 0x18], 0xffffffff
mov dword [esi + 0x1c], 0x7fffffff
call fcn.10017ef0
add esp, 8
cmp dword [esi + 8], 0
jne 0x10042eb3
test edi, edi
jl 0x10042eb3
mov eax, edi
mov ecx, ebx
call fcn.10007a10
or byte [esp + 0x7c], 1
mov byte [eax], 0x3a
test byte [esi + 6], 1
je 0x10042f06
mov eax, dword [ebp + 0x44]
mov edi, eax
inc eax
push 0xfffffffffffffffa
mov dword [ebp + 0x44], eax
mov edx, dword [esi]
push 0
push edx
push ebp
xor ecx, ecx
mov dword [esp + 0xa4], edi
call fcn.1002c0f0
add esp, 0xc
push eax
push edi
push 0x39
push ebx
xor eax, eax
xor ecx, ecx
call fcn.10015ec0
mov dword [esp + 0xac], eax
add esp, 0x14
mov dl, 8
mov eax, ebx
call fcn.100079b0
mov byte [esp + 0x91], 3
jmp 0x10042f0e
mov byte [esp + 0x91], 0
mov edi, dword [esp + 0x10]
xor edx, edx
cmp dword [esp + 0x34], edx
jne 0x10043016
cmp edi, edx
jne 0x10043016
movzx eax, byte [esp + 0x90]
mov ecx, dword [esi]
push edx
mov edx, dword [esp + 0x68]
neg eax
sbb eax, eax
and eax, 0x400
push eax
mov eax, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x30]
push edx
push eax
push ecx
push ebp
call fcn.1003e290
mov edi, eax
add esp, 0x1c
test edi, edi
je 0x10043b02
call fcn.1000c000
cmp edx, dword [esi + 0x1c]
ja 0x10042f7c
jb 0x10042f6f
cmp eax, dword [esi + 0x18]
jae 0x10042f7c
mov eax, edi
call fcn.1000c000
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edx
cmp byte [esp + 0x90], 0
je 0x10042f9f
mov eax, edi
call fcn.1000c010
test eax, eax
je 0x10042f9f
mov eax, edi
call fcn.1000c010
mov byte [esp + 0x91], al
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x10042fbc
mov eax, edi
call fcn.1000c020
mov dword [esp + 0x68], eax
cmp eax, dword [ecx]
jne 0x10042fbc
xor ecx, ecx
mov dword [esp + 0x64], ecx
cmp dword [esp + 0x78], 0
jl 0x10042fd5
test ecx, ecx
jne 0x10042fd5
mov edx, dword [esp + 0x78]
push edx
push ebx
call fcn.100116b0
add esp, 8
mov eax, edi
call fcn.1000c040
push eax
mov eax, edi
call fcn.1000c030
push eax
mov eax, dword [esp + 0x110]
push eax
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x9c]
push ecx
lea edx, [esp + 0x74]
push edx
push 0xffffffffffffffff
push eax
push esi
push ebp
call fcn.10032350
push edi
call fcn.10014e50
add esp, 0x28
jmp 0x10043a91
mov dword [esp + 0x40], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x38], edx
cmp edi, edx
je 0x10043071
mov ecx, dword [esi]
mov eax, dword [ecx]
cmp eax, edx
mov ecx, dword [ecx + 4]
jle 0x10043041
add ecx, 0x16
xor edx, edx
mov word [ecx], dx
dec eax
add ecx, 0x18
cmp eax, edx
jg 0x10043034
mov eax, dword [edi]
cmp eax, edx
mov ecx, dword [edi + 4]
jle 0x1004305d
add ecx, 0x16
lea ecx, [ecx]
xor edi, edi
mov word [ecx], di
dec eax
add ecx, 0x18
cmp eax, edx
jg 0x10043050
mov eax, 0x64
cmp dword [esi + 0x1c], edx
ja 0x1004306c
cmp dword [esi + 0x18], eax
jbe 0x1004307b
mov dword [esi + 0x18], eax
jmp 0x10043078
mov dword [esi + 0x18], 1
mov dword [esi + 0x1c], edx
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x10]
push 0xffffffffffffffff
push eax
call fcn.10009c20
add esp, 8
test eax, eax
jne 0x1004309a
mov dword [esp + 0x38], 1
mov eax, ebx
call fcn.10011490
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], eax
mov eax, dword [ebp + 0x48]
inc eax
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x10]
lea edx, [esp + 0xa4]
mov dword [esp + 0xd8], ebp
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xe4], edx
test eax, eax
je 0x1004311d
mov ecx, dword [eax]
mov dword [esp + 0xb0], ecx
jmp 0x10043128
mov dword [esp + 0xb0], 0
mov edx, dword [esp + 0x28]
mov dword [esp + 0xbc], eax
push edx
lea eax, [esp + 0xdc]
push eax
call fcn.1001a3d0
mov ecx, dword [esp + 0x6c]
push ecx
lea edx, [esp + 0xe4]
push edx
call fcn.1001a3d0
mov ecx, dword [esp + 0x90]
add esp, 0x10
test ecx, ecx
je 0x10043171
lea eax, [esp + 0xd8]
push eax
call fcn.1001a380
add esp, 4
mov ecx, dword [esp + 0xc4]
xor edi, edi
cmp dword [esp + 0xd0], edi
mov dword [esp + 0xc8], ecx
jle 0x100431d7
mov dword [esp + 0x14], edi
mov edi, edi
mov edx, dword [esp + 0xcc]
or word [esp + 0xf4], 8
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + eax]
mov edx, dword [ecx + 0x14]
push edx
lea eax, [esp + 0xdc]
push eax
call fcn.1001a3d0
add dword [esp + 0x1c], 0x10
mov ecx, 0xfff7
and word [esp + 0xfc], cx
inc edi
add esp, 8
cmp edi, dword [esp + 0xd0]
jl 0x10043190
mov edx, dword [ebp + 0x48]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xb8], edx
cmp byte [eax + 0x41], 0
jne 0x10043b02
cmp dword [esp + 0x10], 0
je 0x100437e6
mov eax, dword [ebp + 0x44]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc4]
push 0
mov dword [esp + 0xac], eax
inc eax
push edi
push ebp
mov dword [ebp + 0x44], eax
call fcn.1002c0f0
mov ecx, dword [esp + 0xb4]
push 0xfffffffffffffffa
push eax
push ecx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0xa4], eax
push 0x3a
push ebx
xor eax, eax
call fcn.10015ec0
mov dword [esp + 0xa4], eax
mov eax, dword [ebp + 0x48]
inc eax
lea esi, [eax + 1]
mov dword [esp + 0x5c], eax
lea eax, [esi + 1]
mov dword [ebp + 0x48], eax
mov eax, ebx
mov dword [esp + 0xa8], esi
call fcn.10011490
inc dword [ebp + 0x48]
mov edx, dword [ebp + 0x48]
mov dword [esp + 0x74], eax
mov eax, ebx
mov dword [esp + 0x40], edx
call fcn.10011490
mov edx, dword [edi]
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0x48]
lea ecx, [eax + 1]
add eax, edx
mov dword [ebp + 0x48], eax
mov edx, dword [edi]
mov dword [esp + 0x6c], ecx
lea ecx, [eax + 1]
add edx, eax
mov dword [esp + 0x7c], ecx
mov eax, esi
push 0x17
xor ecx, ecx
mov esi, ebx
mov dword [ebp + 0x48], edx
call fcn.10011470
mov eax, dword [esp + 0x60]
push 0x17
xor ecx, ecx
call fcn.10011470
mov eax, dword [esp + 0x74]
mov ecx, dword [edi]
lea edx, [ecx + eax - 1]
push edx
push eax
push 0
push 0x1a
call fcn.100113f0
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x58]
push 0xf
call fcn.10011470
mov eax, dword [esp + 0x74]
neg eax
sbb eax, eax
and eax, 0x800
mov ecx, pe_nt_image_headers32
or ax, cx
movzx edx, ax
mov eax, dword [esp + 0x6c]
push 0
push edx
push 0
push edi
mov ecx, dword [esp + 0x70]
push eax
push ecx
push ebp
call fcn.1003e290
add esp, 0x58
mov dword [esp + 0x14], eax
test eax, eax
je 0x10043b02
call fcn.1000c020
mov edx, edi
cmp eax, dword [edx]
jne 0x10043331
xor esi, esi
mov dword [esp + 0x34], esi
jmp 0x10043503
cmp byte [esp + 0x90], 0
je 0x1004334d
mov eax, dword [esp + 0x104]
test byte [eax + 6], 1
mov eax, str.DISTINCT
je 0x10043352
mov eax, str.GROUP_BY
mov edi, ebp
call fcn.100236e0
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx]
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x34], 1
mov esi, edi
mov dword [esp + 0x30], edi
mov eax, edi
test ecx, ecx
jle 0x10043396
mov edx, dword [esp + 0xc0]
add edx, 0xc
cmp dword [edx], eax
jl 0x1004338a
inc esi
inc eax
add edx, 0x18
sub ecx, 1
jne 0x10043384
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x30]
mov ecx, ebp
call fcn.10009dc0
mov esi, eax
mov eax, ebp
mov dword [esp + 0x58], esi
call fcn.10009bc0
mov edx, dword [esp + 0x10]
push esi
push ebp
xor al, al
call fcn.10019f30
xor eax, eax
add esp, 8
cmp dword [esp + 0xc4], eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x50], eax
jle 0x10043462
lea edx, [esi + edi]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x60], edx
jmp 0x100433f0
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
cmp dword [eax + edx + 0xc], ecx
jl 0x1004344b
mov esi, dword [esp + 0x60]
push 0
mov ecx, edx
mov edx, dword [eax + ecx + 4]
push esi
push edx
mov edx, dword [eax + ecx + 8]
mov eax, dword [eax + ecx]
push edx
push eax
mov edi, ebp
call fcn.1002b790
mov ecx, eax
add esp, 0x14
cmp esi, ecx
je 0x10043433
mov eax, esi
push 0x20
mov esi, ebx
call fcn.10011470
add esp, 4
mov esi, dword [esp + 0x58]
mov eax, 1
add dword [esp + 0x40], eax
add dword [esp + 0x60], eax
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0x50]
add dword [esp + 0x44], 0x18
inc ecx
cmp ecx, dword [esp + 0xc4]
mov dword [esp + 0x50], ecx
jl 0x100433f0
mov eax, ebp
call fcn.10009d70
mov ecx, dword [esp + 0x30]
mov edi, eax
push edi
push ecx
push esi
push 0x31
mov esi, ebx
call fcn.100113f0
mov ecx, dword [esp + 0xb8]
push 0x6e
mov eax, edi
call fcn.10011470
mov esi, edi
mov edx, ebp
call fcn.10009d90
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x6c]
mov eax, ebp
call fcn.10009df0
mov edx, dword [esp + 0x28]
push edx
call fcn.10014e50
mov edx, dword [ebp + 0x44]
lea eax, [edx + 1]
mov dword [ebp + 0x44], eax
mov eax, ebp
mov dword [esp + 0x58], edx
mov dword [esp + 0xc4], edx
call fcn.10009d70
push esi
push eax
push edx
push 0x3c
mov esi, ebx
mov dword [esp + 0x80], eax
call fcn.100113f0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xd0]
push 0x6b
call fcn.10011470
add esp, 0x2c
mov eax, ebp
mov byte [esp + 0xa5], 1
call fcn.10009bc0
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x38], 0
je 0x1004353b
mov ecx, dword [esp + 0x1c]
test byte [ecx + 0x3c], 4
jne 0x1004353b
test esi, esi
jne 0x10043525
mov eax, dword [esp + 0x14]
call fcn.1000c7d0
test eax, eax
je 0x1004353b
mov edx, dword [esp + 0x78]
push edx
push ebx
mov dword [esp + 0x6c], 0
call fcn.100116b0
add esp, 8
mov eax, ebx
call fcn.10007940
mov dword [esp + 0x30], eax
mov eax, ebp
call fcn.10009bc0
test esi, esi
je 0x1004356f
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0xa8]
push eax
push ecx
push edx
push 0x65
mov esi, ebx
call fcn.100113f0
add esp, 0x10
mov esi, dword [esp + 0x10]
xor edi, edi
cmp dword [esi], edi
jle 0x100435cd
mov dword [esp + 0x38], edi
lea ecx, [ecx]
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x5c]
lea ecx, [edi + eax]
push ecx
je 0x100435a7
mov edx, dword [esp + 0x44]
push edi
push edx
push 0x2f
mov esi, ebx
call fcn.100113f0
mov esi, dword [esp + 0x20]
add esp, 0x10
jmp 0x100435c3
mov eax, dword [esp + 0x3c]
mov byte [esp + 0xa8], 1
mov edx, dword [esi + 4]
mov ecx, dword [edx + eax]
push ecx
push ebp
call fcn.1004c470
add esp, 0xc
add dword [esp + 0x38], 0x18
inc edi
cmp edi, dword [esi]
jl 0x10043580
mov eax, dword [esp + 0x8c]
push 0xfffffffffffffffa
call fcn.1000b2c0
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x60]
push eax
mov eax, dword [edx]
push edi
push 0x2a
push ebx
call fcn.10015ec0
mov eax, ebx
call fcn.10007940
mov dword [esp + 0xa0], eax
inc eax
push eax
push 0
push eax
push 0x2b
mov esi, ebx
call fcn.100113f0
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
push ecx
mov ecx, dword [esp + 0x84]
push ebp
mov eax, edi
call fcn.10012ed0
mov edi, dword [esp + 0xb4]
mov eax, dword [esp + 0x80]
inc edi
push 0xf
mov ecx, edi
call fcn.10011470
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0xb8]
push 0x8a
call fcn.10011470
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x54]
push 0xf
call fcn.10011470
mov edx, dword [esp + 0xc4]
push edx
call fcn.100079d0
lea eax, [esp + 0xe0]
push eax
push ebp
call fcn.1002cd50
mov eax, dword [esp + 0x80]
add esp, 0x44
push 0x17
mov ecx, 1
call fcn.10011470
add esp, 4
cmp dword [esp + 0x34], 0
je 0x100436b3
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xa8]
push 4
call fcn.10011470
add esp, 4
jmp 0x100436ce
mov ecx, dword [esp + 0x14]
push ecx
call fcn.10014e50
mov edx, dword [esp + 0x88]
push edx
push ebx
call fcn.100116b0
add esp, 0xc
mov eax, dword [esp + 0x54]
push 0xf
mov ecx, edi
mov esi, ebx
call fcn.10011470
mov eax, dword [esp + 0x30]
push 0xe
xor ecx, ecx
call fcn.10011470
mov eax, ebx
call fcn.10007940
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x90]
push 0x17
mov ecx, 1
call fcn.10011470
mov eax, edi
mov ecx, 0x10
call fcn.10011460
mov eax, dword [esp + 0x60]
push eax
mov ecx, ebx
call fcn.10007900
mov eax, ebx
call fcn.10007940
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x64], eax
add eax, 2
push 0x8a
call fcn.10011470
mov eax, edi
mov ecx, 0x10
call fcn.10011460
lea ecx, [esp + 0xb8]
push ecx
mov eax, ebp
call fcn.100182d0
mov esi, dword [esp + 0x6c]
mov edx, dword [esp + 0x98]
push 0x10
inc esi
push esi
push edx
push ebp
call fcn.10047d60
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x130]
push eax
push esi
push ecx
lea edx, [esp + 0xc4]
push edx
lea eax, [esp + 0x9c]
push eax
mov eax, dword [esp + 0x140]
mov ecx, dword [eax]
push 0xffffffffffffffff
push ecx
push eax
push ebp
call fcn.10032350
add esp, 0x4c
mov eax, edi
mov ecx, 0x10
mov esi, ebx
call fcn.10011460
mov edx, dword [esp + 0x48]
push edx
mov ecx, ebx
call fcn.10007900
lea eax, [esp + 0xa8]
push eax
mov eax, ebp
call fcn.1002cca0
mov eax, dword [esp + 0x28]
add esp, 8
mov ecx, 0x10
call fcn.10011460
jmp 0x10043a7b
lea ecx, [esp + 0xa4]
mov eax, esi
mov dword [esp + 0x3c], 0
call fcn.1000b610
mov edi, eax
test edi, edi
je 0x10043929
mov esi, dword [edi + 0x40]
mov ecx, dword [ebp]
call fcn.1000b080
mov esi, eax
mov eax, dword [ebp + 0x44]
mov dword [esp + 0x48], eax
inc eax
mov dword [ebp + 0x44], eax
mov ecx, dword [edi + 0x1c]
xor eax, eax
mov dword [esp + 0x4c], ecx
mov ecx, esi
mov edx, ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], eax
call fcn.1003d200
mov edx, dword [edi]
mov eax, dword [edi + 0x1c]
push edx
push 0
push eax
push esi
mov eax, ebp
call fcn.10013360
add esp, 0x10
test byte [edi + 0x2a], 0x20
je 0x1004385f
mov eax, edi
call fcn.1000a180
mov dword [esp + 0x14], eax
jmp 0x10043863
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x1004389d
lea ebx, [ebx]
test byte [ecx + 0x34], 4
jne 0x10043892
movzx edx, word [ecx + 0x2c]
cmp dx, word [edi + 0x28]
jge 0x10043892
cmp dword [ecx + 0x24], 0
jne 0x10043892
test eax, eax
je 0x10043890
cmp dx, word [eax + 0x2c]
jge 0x10043892
mov eax, ecx
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x10043870
mov dword [esp + 0x14], eax
test eax, eax
je 0x100438b6
mov ecx, dword [eax + 0x28]
push eax
push ebp
mov dword [esp + 0x54], ecx
call fcn.1002bd50
add esp, 8
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
push 1
push edx
push 0x36
push ebx
mov eax, esi
call fcn.10015fa0
add esp, 0x10
cmp dword [esp + 0x20], 0
je 0x100438e8
mov eax, dword [esp + 0x20]
push 0xfffffffffffffffa
push eax
push ebx
or eax, 0xffffffff
call fcn.10011740
add esp, 0xc
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x48]
push 0x32
mov esi, ebx
call fcn.10011470
mov eax, dword [esp + 0x4c]
add esp, 4
mov ecx, 0x3d
call fcn.10011460
mov eax, dword [esp + 0x14]
mov edx, edi
mov edi, ebp
call fcn.100245f0
mov esi, dword [esp + 0x104]
jmp 0x10043a32
xor edi, edi
mov dword [esp + 0x20], edi
mov byte [esp + 0x1b], 0
cmp dword [esi + 0x2c], edi
jne 0x10043994
lea edi, [esp + 0x20]
lea eax, [esp + 0xa4]
call fcn.1000b590
mov byte [esp + 0x1b], al
test al, al
je 0x10043990
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push 0
push edx
call fcn.10012b30
mov edi, eax
add esp, 8
mov dword [esp + 0x3c], edi
test edi, edi
je 0x10043994
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x41], 0
jne 0x10043994
cmp byte [esp + 0x1b], 1
mov edx, dword [edi + 4]
setne cl
mov byte [edx + 0xc], cl
mov eax, dword [edi + 4]
mov ecx, dword [eax]
mov byte [ecx], 0x9a
jmp 0x10043994
mov edi, dword [esp + 0x20]
lea edx, [esp + 0xa4]
push edx
mov eax, ebp
call fcn.1002cca0
movzx ax, byte [esp + 0x1f]
mov edx, dword [esp + 0x34]
push 0
movzx ecx, ax
mov eax, dword [esp + 0x2c]
push ecx
push 0
push edi
push edx
push eax
push ebp
call fcn.1003e290
mov edi, eax
add esp, 0x20
test edi, edi
jne 0x100439e2
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
push ecx
push edx
call fcn.10012d50
add esp, 8
jmp 0x10043b02
lea eax, [esp + 0xa4]
push eax
push ebp
call fcn.1002cd50
add esp, 8
mov eax, edi
call fcn.1000c020
test eax, eax
jle 0x10043a1a
mov eax, edi
call fcn.1000c040
push 0xe
xor ecx, ecx
mov esi, ebx
call fcn.10011470
mov esi, dword [esp + 0x108]
add esp, 4
push edi
call fcn.10014e50
lea ecx, [esp + 0xa8]
push ecx
mov eax, ebp
call fcn.100182d0
add esp, 8
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x80]
push 0x10
push edi
push edx
push ebp
mov dword [esp + 0x74], 0
call fcn.10047d60
mov eax, dword [esp + 0x118]
mov ecx, dword [esi]
push edi
push edi
push eax
push 0
push 0
push 0xffffffffffffffff
push ecx
push esi
push ebp
call fcn.10032350
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x50]
push edx
push eax
call fcn.10012d50
add esp, 0x3c
mov ecx, dword [esp + 0x2c]
push ecx
mov ecx, ebx
call fcn.10007900
mov esi, dword [esp + 0x108]
add esp, 4
cmp byte [esp + 0x91], 3
jne 0x10043aa7
mov eax, str.DISTINCT
mov edi, ebp
call fcn.100236e0
cmp dword [esp + 0x64], 0
je 0x10043ae4
cmp dword [esp + 0x68], 0
mov eax, str.RIGHT_PART_OF_ORDER_BY
jg 0x10043abf
mov eax, str.ORDER_BY
mov edi, ebp
call fcn.100236e0
mov edx, dword [esp + 0x108]
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
push edx
push ecx
lea edx, [esp + 0x6c]
push edx
push esi
push ebp
call fcn.1001b140
add esp, 0x14
mov eax, dword [esp + 0xf8]
push eax
mov ecx, ebx
call fcn.10007900
xor ecx, ecx
add esp, 4
cmp dword [ebp + 0x40], ecx
setg cl
mov dword [esp + 0x44], ecx
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0xd4]
mov dword [ebp + 0x1cc], edx
test edi, edi
jne 0x10043b36
mov eax, dword [esp + 0x108]
cmp byte [eax], 9
jne 0x10043b36
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
push ebp
call fcn.10023780
add esp, 0xc
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0xc0]
mov ecx, esi
call fcn.10001ed0
mov edx, dword [esp + 0xcc]
mov ecx, esi
call fcn.10001ed0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xec
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xec
ret