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

Disassembly:
sub esp, 0xdc
push ebx
push ebp
push esi
mov esi, dword [esp + 0xec]
mov ebx, dword [esp + 0xf0]
push edi
mov eax, dword [esi + 0x1d0]
mov ebp, dword [esi]
mov dword [esp + 0xc4], eax
mov eax, dword [esi + 0x1d4]
mov dword [esi + 0x1d0], eax
inc eax
test ebx, ebx
mov dword [esp + 0x14], 1
mov dword [esi + 0x1d4], eax
mov dword [esp + 0x20], ebp
je 0x1006d389
mov al, byte [ebp + 0x40]
test al, al
jne 0x1006d389
mov eax, dword [esi + 0x40]
test eax, eax
jne 0x1006d389
push 0
push 0
push 0
push 0x15
push esi
call fcn.1005e2d0
add esp, 0x14
test eax, eax
jne 0x1006d389
mov ecx, 0xc
lea edi, [esp + 0x94]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0xf8]
cmp byte [ecx], 8
ja 0x1006c21f
mov edx, dword [ebx + 0x30]
push edx
push ebp
call fcn.1004e260
add esp, 8
and byte [ebx + 6], 0xfe
mov dword [ebx + 0x30], 0
push 0
push ebx
push esi
call fcn.1006aff0
mov edx, dword [ebx]
mov ecx, 7
xor eax, eax
lea edi, [esp + 0x74]
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x74], eax
mov eax, dword [esi + 0x40]
add esp, 0xc
mov dword [esp + 0x30], ecx
test eax, eax
mov dword [esp + 0x38], edx
jne 0x1006d325
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x40]
test cl, cl
jne 0x1006d325
mov ecx, dword [esp + 0xf4]
push esi
mov dl, byte [ecx + 6]
shr edx, 2
and edx, 1
mov dword [esp + 0x20], edx
call fcn.1006af10
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x1006d325
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0xf8]
mov ecx, dword [eax]
push ecx
push edx
push esi
call fcn.1006d770
add esp, 0xc
test eax, eax
jne 0x1006d325
mov ebx, dword [esp + 0xf4]
mov dword [esp + 0x2c], eax
mov ecx, dword [ebx + 0x34]
test ecx, ecx
jne 0x1006c53b
jmp 0x1006c2c9
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
cmp eax, dword [ecx]
jge 0x1006c53b
lea eax, [eax + eax*4]
shl eax, 4
lea edi, [eax + ecx + 8]
mov eax, dword [eax + ecx + 0x1c]
test eax, eax
mov dword [esp + 0x18], eax
je 0x1006c527
mov eax, dword [edi + 0x18]
test eax, eax
je 0x1006c315
test byte [edi + 0x28], 4
jne 0x1006c527
mov ecx, dword [edi + 0x1c]
push eax
push ecx
push 0x11
push ebp
call fcn.10057e50
add esp, 0x10
jmp 0x1006c527
push ebx
call fcn.1006d3a0
mov ecx, dword [esi + 0x1cc]
mov edx, dword [esp + 0x1c]
add ecx, eax
mov dword [esi + 0x1cc], ecx
mov al, byte [edx + 6]
mov ecx, dword [esp + 0x30]
shr eax, 2
and eax, 1
mov dword [esp + 0x38], eax
push eax
mov eax, dword [esp + 0x24]
push eax
push ecx
push ebx
push esi
call fcn.1006ffb0
add esp, 0x18
test eax, eax
je 0x1006c374
mov eax, dword [esp + 0x34]
test eax, eax
je 0x1006c367
or byte [ebx + 6], 4
mov dword [esp + 0x1c], 1
mov dword [esp + 0x2c], 0xffffffff
jmp 0x1006c4de
mov edx, dword [esp + 0x30]
cmp dword [edx], 1
jne 0x1006c432
mov eax, dword [esp + 0x20]
test byte [eax + 0x3d], 1
jne 0x1006c432
push ebp
call fcn.100589e0
mov edx, dword [esi + 0x48]
mov ebx, eax
inc ebx
inc edx
mov eax, edx
push ebx
push 0
push eax
push 0x14
mov dword [esi + 0x48], edx
push ebp
mov dword [edi + 0x1c], eax
call fcn.1004aaf0
mov ecx, dword [edi + 0x1c]
lea edx, [esp + 0xe0]
push ecx
push 0xd
push edx
mov dword [edi + 0x18], ebx
call fcn.1006a6f0
mov edx, dword [esp + 0x3c]
mov al, byte [esi + 0x1d4]
lea ecx, [esp + 0xec]
mov byte [edi + 0x2c], al
push ecx
push edx
push esi
call fcn.1006c170
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
push ecx
push edx
call fcn.1004d450
mov ecx, dword [edi + 0x10]
mov word [ecx + 0x1c], ax
mov edx, dword [edi + 0x28]
mov eax, dword [edi + 0x1c]
or edx, 4
mov dword [edi + 0x28], edx
mov edx, dword [esp + 0x108]
push eax
push 0x15
push ebp
mov dword [edi + 0x20], edx
call fcn.10058940
add esp, 0x44
dec ebx
push ebx
push ebp
call fcn.10057e70
push esi
call fcn.1006d760
add esp, 0xc
jmp 0x1006c4de
mov eax, dword [esi + 0x48]
xor ebx, ebx
inc eax
push eax
push ebx
push 0x19
mov dword [esi + 0x48], eax
push ebp
mov dword [edi + 0x1c], eax
call fcn.10057e50
add esp, 0x10
mov dword [esp + 0x34], eax
inc eax
mov dword [edi + 0x18], eax
mov al, byte [edi + 0x28]
test al, 2
jne 0x1006c465
push esi
call fcn.1005a460
add esp, 4
mov ebx, eax
mov ecx, dword [edi + 0x30]
lea edx, [esp + 0xc8]
push ecx
push 0xc
push edx
call fcn.1006a6f0
mov edx, dword [esp + 0x24]
mov al, byte [esi + 0x1d4]
lea ecx, [esp + 0xd4]
mov byte [edi + 0x2c], al
push ecx
push edx
push esi
call fcn.1006c170
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
push ecx
push edx
call fcn.1004d450
mov ecx, dword [edi + 0x10]
add esp, 0x20
test ebx, ebx
mov word [ecx + 0x1c], ax
je 0x1006c4bd
push ebx
push ebp
call fcn.10057e70
add esp, 8
mov edx, dword [edi + 0x1c]
push edx
push 0x12
push ebp
call fcn.10058940
push eax
mov eax, dword [esp + 0x44]
push eax
push ebp
call fcn.1004ac80
push esi
call fcn.1006d760
add esp, 0x1c
mov ecx, dword [esp + 0x20]
mov al, byte [ecx + 0x40]
test al, al
jne 0x1006d325
mov ebx, dword [esp + 0xf4]
push ebx
call fcn.1006d3a0
mov edx, dword [esi + 0x1cc]
add esp, 4
sub edx, eax
mov eax, dword [esp + 0xf8]
mov dword [esi + 0x1cc], edx
mov edx, dword [ebx + 0x20]
mov cl, byte [eax]
mov dword [esp + 0x30], edx
cmp cl, 8
jbe 0x1006c527
mov ecx, dword [ebx + 0x30]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebx + 0x34]
inc ecx
test eax, eax
mov dword [esp + 0x2c], ecx
je 0x1006c2c5
mov edi, dword [esp + 0xf4]
mov edx, dword [edi]
mov eax, dword [edi + 0x24]
mov ecx, dword [edi + 0x2c]
mov ebx, dword [edi + 0x28]
mov dword [esp + 0x38], edx
mov dl, byte [edi + 6]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x34]
and dl, 1
mov dword [esp + 0x88], ecx
test eax, eax
mov byte [esp + 0x5c], dl
je 0x1006c597
mov eax, dword [esp + 0xf8]
push eax
push edi
push esi
call fcn.1006e930
mov ecx, dword [esp + 0xd0]
add esp, 0xc
mov dword [esi + 0x1d0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xdc
ret
mov dl, byte [edi + 6]
and dl, 5
cmp dl, 1
jne 0x1006c6b8
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x68]
push 0xffffffffffffffff
push eax
push ecx
call fcn.1005c670
add esp, 0xc
test eax, eax
jne 0x1006c6b8
mov edx, dword [edi]
and byte [edi + 6], 0xfe
push eax
mov eax, dword [esp + 0x24]
push edx
push eax
call fcn.1005b740
add esp, 0xc
mov dword [edi + 0x28], eax
mov ebx, eax
mov dword [esp + 0x68], 0
mov dword [esp + 0x7c], 0xffffffff
mov eax, dword [esp + 0xf8]
cmp byte [eax], 0xc
jne 0x1006c60e
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 4]
mov edx, dword [ecx]
push edx
push eax
push 0x38
push ebp
call fcn.10057e50
add esp, 0x10
push ebp
call fcn.10058960
push eax
push edi
push esi
mov dword [esp + 0xf8], eax
mov dword [edi + 0x18], 0xffffffff
mov dword [edi + 0x1c], SysReAllocString
call fcn.1006e7e0
mov eax, dword [edi + 8]
add esp, 0x10
xor edx, edx
test eax, eax
jne 0x1006c664
mov eax, dword [esp + 0x7c]
cmp eax, edx
jl 0x1006c664
push eax
push ebp
call fcn.1005bd10
mov byte [eax], 0x39
mov al, byte [esp + 0x88]
or al, 1
add esp, 8
mov byte [esp + 0x80], al
xor edx, edx
test byte [edi + 6], 1
je 0x1006c706
mov eax, dword [esi + 0x44]
push 0xfffffffffffffffa
mov dword [esp + 0x64], eax
inc eax
mov dword [esi + 0x44], eax
mov ecx, dword [edi]
push 0
push 0
push ecx
push esi
call fcn.1006e120
mov edx, dword [esp + 0x74]
add esp, 0x10
push eax
push 0
push 0
push edx
push 0x38
push ebp
call fcn.100574e0
push 8
push ebp
mov dword [esp + 0x88], eax
call fcn.1004ace0
add esp, 0x24
mov byte [esp + 0x5d], 3
xor edx, edx
jmp 0x1006c70b
mov eax, dword [esp + 0x68]
test eax, eax
je 0x1006c5e4
push 0
push 0
push eax
push esi
call fcn.1006e120
mov ecx, dword [esi + 0x44]
push 0xfffffffffffffffa
push eax
mov eax, dword [esp + 0x80]
lea edx, [ecx + 1]
mov dword [esp + 0x88], ecx
mov dword [esi + 0x44], edx
mov edx, dword [eax]
add edx, 2
push 0
push edx
push ecx
push 0x38
push ebp
call fcn.100574e0
add esp, 0x2c
mov dword [esp + 0x7c], eax
jmp 0x1006c5ec
mov byte [esp + 0x5d], 0
cmp dword [esp + 0x1c], edx
jne 0x1006c81a
cmp ebx, edx
jne 0x1006c81a
mov al, byte [esp + 0x5c]
mov ecx, dword [esp + 0x68]
neg al
mov edx, dword [esp + 0x10]
push 0
sbb eax, eax
and eax, 0x400
push eax
mov eax, dword [edi]
push eax
mov eax, dword [esp + 0x3c]
push ecx
push edx
push eax
push esi
call fcn.10073790
mov edi, eax
add esp, 0x1c
test edi, edi
je 0x1006d325
push edi
call fcn.10073700
mov ebx, dword [esp + 0xf8]
add esp, 4
cmp edx, dword [ebx + 0x1c]
ja 0x1006c77d
jb 0x1006c76e
cmp eax, dword [ebx + 0x18]
jae 0x1006c77d
push edi
call fcn.10073700
add esp, 4
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], edx
mov al, byte [esp + 0x5c]
test al, al
je 0x1006c79f
push edi
call fcn.10073720
add esp, 4
test eax, eax
je 0x1006c79f
push edi
call fcn.10073720
add esp, 4
mov byte [esp + 0x5d], al
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x1006c7c2
push edi
call fcn.10073730
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x70], eax
add esp, 4
cmp eax, dword [ecx]
jne 0x1006c7c2
xor ecx, ecx
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x7c]
test eax, eax
jl 0x1006c7d8
test ecx, ecx
jne 0x1006c7d8
push eax
push ebp
call fcn.1004ad00
add esp, 8
push edi
call fcn.10073750
add esp, 4
push eax
push edi
call fcn.10073740
mov ecx, dword [esp + 0x100]
add esp, 4
lea edx, [esp + 0x60]
push eax
push ecx
mov ecx, dword [esp + 0x44]
lea eax, [esp + 0x74]
push edx
push eax
push 0xffffffffffffffff
push ecx
push ebx
push esi
call fcn.1006d7b0
push edi
call fcn.1007a660
add esp, 0x28
jmp 0x1006d2b8
cmp ebx, edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x50], edx
je 0x1006c86c
mov eax, dword [edi]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
cmp ecx, edx
jle 0x1006c841
add eax, 0x16
mov word [eax], dx
add eax, 0x18
dec ecx
jne 0x1006c838
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
cmp ecx, edx
jle 0x1006c856
add eax, 0x16
mov word [eax], dx
add eax, 0x18
dec ecx
jne 0x1006c84d
mov ecx, dword [edi + 0x1c]
mov eax, 0x64
cmp ecx, edx
ja 0x1006c867
cmp dword [edi + 0x18], eax
jbe 0x1006c876
mov dword [edi + 0x18], eax
jmp 0x1006c873
mov dword [edi + 0x18], 1
mov dword [edi + 0x1c], edx
mov edx, dword [esp + 0x68]
push 0xffffffffffffffff
push edx
push ebx
call fcn.1005c670
add esp, 0xc
test eax, eax
jne 0x1006c892
mov dword [esp + 0x50], 1
push ebp
call fcn.10058960
mov edx, dword [esi + 0x48]
mov dword [esp + 0x58], eax
mov ecx, 8
xor eax, eax
lea edi, [esp + 0xcc]
add esp, 4
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x94]
inc edx
mov dword [esp + 0xc8], esi
test ebx, ebx
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xa4], edx
je 0x1006c8ea
mov eax, dword [ebx]
inc eax
mov dword [esp + 0xa0], eax
jmp 0x1006c8f5
mov dword [esp + 0xa0], 0
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0xc8]
push ecx
push edx
mov dword [esp + 0xb4], ebx
call fcn.1006d720
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0xd0]
push eax
push ecx
call fcn.1006d720
mov eax, dword [esp + 0x98]
add esp, 0x10
test eax, eax
je 0x1006c93f
lea edx, [esp + 0xc8]
push eax
push edx
call fcn.1006d410
add esp, 8
mov eax, dword [esp + 0xb4]
xor edi, edi
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xc0]
test eax, eax
jle 0x1006c9b7
mov dword [esp + 0x1c], edi
mov al, byte [esp + 0xe4]
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x1c]
or al, 8
mov byte [esp + 0xe4], al
mov eax, dword [edx + ecx]
lea edx, [esp + 0xc8]
mov ecx, dword [eax + 0x14]
push ecx
push edx
call fcn.1006d720
mov al, byte [esp + 0xec]
mov ecx, dword [esp + 0x24]
and al, 0xf7
add esp, 8
mov byte [esp + 0xe4], al
mov eax, dword [esp + 0xc0]
inc edi
add ecx, 0x10
cmp edi, eax
mov dword [esp + 0x1c], ecx
jl 0x1006c95e
mov eax, dword [esi + 0x48]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xa8], eax
mov al, byte [ecx + 0x40]
test al, al
jne 0x1006d325
test ebx, ebx
je 0x1006d022
mov eax, dword [esi + 0x44]
push 0
mov dword [esp + 0x9c], eax
push 0
inc eax
push ebx
push esi
mov dword [esi + 0x44], eax
call fcn.1006e120
mov edx, dword [esp + 0xb0]
push 0xfffffffffffffffa
mov dword [esp + 0xa0], eax
push eax
mov eax, dword [esp + 0xb0]
push 0
push edx
push eax
push 0x39
push ebp
call fcn.100574e0
mov dword [esp + 0xbc], eax
mov eax, dword [esi + 0x48]
inc eax
push ebp
mov dword [esp + 0x78], eax
lea edi, [eax + 1]
mov dword [esp + 0x7c], edi
inc edi
mov dword [esi + 0x48], edi
call fcn.10058960
mov dword [esp + 0x64], eax
mov eax, dword [esi + 0x48]
inc eax
push ebp
mov ecx, eax
mov dword [esi + 0x48], eax
mov dword [esp + 0x74], ecx
call fcn.10058960
mov ecx, dword [ebx]
mov dword [esp + 0x78], eax
mov eax, dword [esi + 0x48]
lea edx, [eax + 1]
add eax, ecx
mov dword [esp + 0xb8], edx
mov dword [esi + 0x48], eax
mov ecx, dword [ebx]
lea edx, [eax + 1]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x80]
push edx
push 0
add ecx, eax
push 0x19
push ebp
mov dword [esi + 0x48], ecx
call fcn.10057e50
mov eax, dword [esp + 0x8c]
add esp, 0x44
push eax
push 0
push 0x19
push ebp
call fcn.10057e50
mov ecx, dword [ebx]
mov eax, dword [esp + 0x94]
lea edx, [eax + ecx - 1]
push edx
push eax
push 0
push 0x1c
push ebp
call fcn.1004aaf0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
push eax
push ecx
push 0x11
push ebp
call fcn.10057e50
mov edx, dword [esp + 0x84]
push 0
neg edx
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x68]
sbb edx, edx
and edx, 0x800
or dh, 1
push edx
push 0
push ebx
push eax
push ecx
push esi
call fcn.10073790
add esp, 0x50
mov dword [esp + 0x1c], eax
test eax, eax
je 0x1006d325
mov edx, eax
push edx
call fcn.10073730
mov ecx, dword [ebx]
add esp, 4
cmp eax, ecx
jne 0x1006cb1e
mov dword [esp + 0x24], 0
jmp 0x1006cd36
mov al, byte [esp + 0x5c]
test al, al
je 0x1006cb3a
mov eax, dword [esp + 0xf4]
mov cl, byte [eax + 6]
mov eax, str.DISTINCT
test cl, 1
je 0x1006cb3f
mov eax, str.GROUP_BY
push eax
push esi
call fcn.1006e1c0
mov eax, dword [ebx]
mov ecx, dword [esp + 0xbc]
add esp, 8
mov dword [esp + 0x28], eax
inc eax
mov dword [esp + 0x24], 1
test ecx, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], eax
jle 0x1006cb95
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x10], ecx
add edx, 0xc
cmp dword [edx], eax
jl 0x1006cb87
mov ecx, dword [esp + 0x18]
inc ecx
inc eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
add edx, 0x18
dec ecx
mov dword [esp + 0x10], ecx
jne 0x1006cb79
mov eax, dword [esp + 0x18]
push eax
push esi
call fcn.1005c700
push esi
mov dword [esp + 0x48], eax
call fcn.1006a260
mov ecx, dword [esp + 0x48]
push 0
push ecx
push ebx
push esi
call fcn.1005bc00
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0xb4]
add edx, eax
push edx
push ecx
push 0x45
push ebp
call fcn.10057e50
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x58]
add esp, 0x2c
mov dword [esp + 0x14], edx
test eax, eax
mov dword [esp + 0x2c], 0
jle 0x1006cc89
mov eax, dword [esp + 0x3c]
mov ecx, edx
add eax, ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp dword [ecx + eax + 0xc], edx
jl 0x1006cc6a
mov edx, dword [esp + 0x28]
push 0
push edx
mov edx, dword [ecx + eax + 4]
push edx
mov edx, dword [ecx + eax + 8]
mov eax, dword [ecx + eax]
push edx
push eax
push esi
call fcn.1005b090
mov ecx, dword [esp + 0x40]
add esp, 0x18
cmp ecx, eax
je 0x1006cc51
push ecx
push eax
push 0x22
push ebp
call fcn.10057e50
add esp, 0x10
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
inc ecx
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
add edx, 0x18
inc ecx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0xb4]
cmp ecx, edx
mov dword [esp + 0x2c], ecx
jl 0x1006cc10
push esi
call fcn.10057ea0
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
push eax
mov eax, dword [esp + 0x44]
push edx
push eax
push 0x30
push ebp
call fcn.1004aaf0
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0xb0]
push ecx
push edx
push 0x6b
push ebp
call fcn.10057e50
mov eax, dword [esp + 0x38]
push eax
push esi
call fcn.10057ed0
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x6c]
push ecx
push edx
push esi
call fcn.1005c730
mov eax, dword [esp + 0x58]
push eax
call fcn.1007a660
mov edx, dword [esi + 0x44]
add esp, 0x40
mov dword [esp + 0x28], edx
mov dword [esp + 0x9c], edx
lea ecx, [edx + 1]
push esi
mov dword [esi + 0x44], ecx
call fcn.10057ea0
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
push ecx
push eax
push edx
push 0x3a
push ebp
call fcn.1004aaf0
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0xb0]
push edx
push eax
push 0x68
push ebp
call fcn.10057e50
push esi
mov byte [esp + 0xc1], 1
call fcn.1006a260
add esp, 0x2c
mov eax, dword [esp + 0x50]
test eax, eax
je 0x1006cd77
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x3c], 4
jne 0x1006cd77
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x1006cd61
mov edx, dword [esp + 0x1c]
push edx
call fcn.10073780
add esp, 4
test eax, eax
je 0x1006cd77
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x68], 0
push eax
push ebp
call fcn.1004ad00
add esp, 8
push ebp
call fcn.100589e0
push esi
mov dword [esp + 0x58], eax
call fcn.1006a260
mov eax, dword [esp + 0x2c]
add esp, 8
test eax, eax
je 0x1006cdaa
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x98]
push ecx
push edx
push 0x62
push ebp
call fcn.10057e50
add esp, 0x10
mov eax, dword [ebx]
mov dword [esp + 0x14], 0
test eax, eax
jle 0x1006ce1c
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x58]
test eax, eax
mov eax, dword [esp + 0x14]
lea edx, [eax + ecx]
push edx
je 0x1006cdf2
push eax
mov eax, dword [esp + 0x30]
push eax
push 0x2e
push ebp
call fcn.1004aaf0
mov eax, dword [esp + 0x28]
add esp, 0x14
test eax, eax
jne 0x1006ce0d
push 0x20
push ebp
call fcn.1004ace0
add esp, 8
jmp 0x1006ce0d
mov byte [esp + 0x98], 1
mov ecx, dword [ebx + 4]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*8]
push edx
push esi
call fcn.10058c90
add esp, 0xc
mov eax, dword [esp + 0x14]
mov ecx, dword [ebx]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x1006cdb8
mov eax, dword [esp + 0x8c]
push 0xfffffffffffffffa
push eax
call fcn.1006a980
mov ecx, dword [ebx]
mov edx, dword [esp + 0x60]
add esp, 4
push eax
mov eax, dword [esp + 0x8c]
push ecx
push edx
push eax
push 0x29
push ebp
call fcn.100574e0
push ebp
call fcn.100589e0
mov dword [esp + 0xac], eax
inc eax
push eax
push 0
push eax
push 0x2a
push ebp
call fcn.1004aaf0
mov ecx, dword [ebx]
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0x8c]
push ecx
push edx
push eax
push esi
call fcn.1006d3c0
mov ecx, dword [esp + 0x78]
add esp, 0x44
push ecx
push edi
push 0x11
push ebp
call fcn.10057e50
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x5c]
push edx
push eax
push 0x87
push ebp
call fcn.10057e50
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
push ecx
push edx
push 0x11
push ebp
call fcn.10057e50
mov eax, dword [esp + 0xbc]
push eax
push ebp
call fcn.10057e70
lea ecx, [esp + 0xcc]
push ecx
push esi
call fcn.100709b0
mov edx, dword [esp + 0x88]
add esp, 0x40
push edx
push 1
push 0x19
push ebp
call fcn.10057e50
mov eax, dword [esp + 0x34]
add esp, 0x10
test eax, eax
je 0x1006cf08
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x98]
push eax
push ecx
push 5
push ebp
call fcn.10057e50
add esp, 0x10
jmp 0x1006cf23
mov edx, dword [esp + 0x1c]
push edx
call fcn.1007a660
mov eax, dword [esp + 0x94]
push eax
push ebp
call fcn.1004ad00
add esp, 0xc
mov ebx, dword [esp + 0x34]
push ebx
push edi
push 0x11
push ebp
call fcn.10057e50
mov ecx, dword [esp + 0x64]
push ecx
push 0
push 0x10
push ebp
call fcn.10057e50
push ebp
call fcn.100589e0
mov edx, dword [esp + 0x70]
mov dword [esp + 0xb4], eax
push edx
push 1
push 0x19
push ebp
call fcn.10057e50
push edi
push 0x12
push ebp
call fcn.10058940
add esp, 0x40
push ebx
push ebp
call fcn.100589b0
push ebp
call fcn.100589e0
mov ecx, dword [esp + 0x54]
mov ebx, eax
lea eax, [ebx + 2]
push eax
push ecx
push 0x87
push ebp
call fcn.10057e50
push edi
push 0x12
push ebp
call fcn.10058940
lea edx, [esp + 0xbc]
push edx
push esi
call fcn.10070950
mov eax, dword [esp + 0xb8]
inc ebx
push 8
push ebx
push eax
push esi
call fcn.1005bd40
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0x138]
add esp, 0x40
lea eax, [esp + 0x5c]
push ecx
push ebx
push edx
push eax
mov eax, dword [esp + 0x104]
lea ecx, [esp + 0x78]
push ecx
push 0xffffffffffffffff
mov edx, dword [eax]
push edx
push eax
push esi
call fcn.1006d7b0
push edi
push 0x12
push ebp
call fcn.10058940
mov eax, dword [esp + 0x74]
push eax
push ebp
call fcn.100589b0
lea ecx, [esp + 0xcc]
push ecx
push esi
call fcn.100708a0
mov edx, dword [esp + 0x80]
add esp, 0x40
push edx
push 0x12
push ebp
call fcn.10058940
add esp, 0xc
jmp 0x1006d2a3
mov edi, dword [esp + 0xf4]
lea eax, [esp + 0x94]
push eax
push edi
mov dword [esp + 0x50], 0
call fcn.10070830
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x1006d15b
mov ecx, dword [ebx + 0x44]
mov edx, dword [esi]
push ecx
push edx
call fcn.100517e0
mov ecx, dword [esi + 0x44]
xor edi, edi
mov dword [esp + 0x4c], ecx
inc ecx
mov dword [esi + 0x44], ecx
mov ecx, dword [ebx + 0x20]
push eax
push esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x5c], ecx
call fcn.10062330
mov edx, dword [ebx]
mov eax, dword [ebx + 0x20]
mov ecx, dword [esp + 0x44]
push edx
push edi
push eax
push ecx
push esi
call fcn.1005e380
mov al, byte [ebx + 0x2c]
add esp, 0x24
test al, 0x20
je 0x1006d0a3
push ebx
call fcn.1004e640
add esp, 4
mov edi, eax
mov eax, dword [ebx + 8]
test eax, eax
je 0x1006d0d4
test byte [eax + 0x38], 4
jne 0x1006d0cd
mov cx, word [eax + 0x30]
cmp cx, word [ebx + 0x2a]
jge 0x1006d0cd
mov edx, dword [eax + 0x24]
test edx, edx
jne 0x1006d0cd
test edi, edi
je 0x1006d0cb
cmp cx, word [edi + 0x30]
jge 0x1006d0cd
mov edi, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x1006d0aa
test edi, edi
je 0x1006d0ed
mov edx, dword [edi + 0x2c]
push edi
push esi
mov dword [esp + 0x54], edx
call fcn.10062800
add esp, 8
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
push 1
push eax
push ecx
push edx
push 0x35
push ebp
call fcn.1004aab0
mov eax, dword [esp + 0x58]
add esp, 0x18
test eax, eax
je 0x1006d11f
push 0xfffffffffffffffa
push eax
push 0xffffffffffffffff
push ebp
call fcn.1004ad60
add esp, 0x10
mov ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0x44]
mov edx, dword [ecx + 8]
push edx
push eax
push 0x31
push ebp
call fcn.10057e50
mov ecx, dword [esp + 0x54]
push ecx
push 0x3b
push ebp
call fcn.10058940
push edi
push ebx
push esi
call fcn.10070bc0
mov edi, dword [esp + 0x11c]
add esp, 0x28
jmp 0x1006d25a
mov eax, dword [edi + 0x2c]
xor bl, bl
test eax, eax
mov dword [esp + 0x24], 0
jne 0x1006d1ca
lea edx, [esp + 0x24]
lea eax, [esp + 0x94]
push edx
push eax
call fcn.100707b0
mov bl, al
add esp, 8
test bl, bl
je 0x1006d1ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push 0
push ecx
push edx
call fcn.1005b740
add esp, 0xc
mov dword [esp + 0x24], eax
test eax, eax
mov dword [esp + 0x48], eax
je 0x1006d1ca
mov ecx, dword [esp + 0x20]
mov dl, byte [ecx + 0x40]
test dl, dl
jne 0x1006d1ca
mov eax, dword [eax + 4]
cmp bl, 1
setne dl
mov byte [eax + 0xc], dl
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 4]
mov eax, dword [edx]
mov byte [eax], 0x9a
lea ecx, [esp + 0x94]
push ecx
push esi
call fcn.100708a0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
xor dx, dx
push 0
mov dl, bl
push edx
mov edx, dword [esp + 0x40]
push 0
push eax
push ecx
push edx
push esi
call fcn.10073790
mov ebx, eax
add esp, 0x24
test ebx, ebx
jne 0x1006d214
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
push eax
push ecx
call fcn.1004e260
jmp 0x1006d322
lea edx, [esp + 0x94]
push edx
push esi
call fcn.100709b0
push ebx
call fcn.10073730
add esp, 0xc
test eax, eax
jle 0x1006d243
push ebx
call fcn.10073750
push eax
push 0
push 0x10
push ebp
call fcn.10057e50
add esp, 0x14
push ebx
call fcn.1007a660
lea eax, [esp + 0x98]
push eax
push esi
call fcn.10070950
add esp, 0xc
mov ebx, dword [esp + 0x54]
mov ecx, dword [esp + 0x88]
push 8
push ebx
push ecx
push esi
mov dword [esp + 0x78], 0
call fcn.1005bd40
mov edx, dword [esp + 0x108]
mov eax, dword [edi]
push ebx
push ebx
push edx
push 0
push 0
push 0xffffffffffffffff
push eax
push edi
push esi
call fcn.1006d7b0
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x54]
push ecx
push edx
call fcn.1004e260
add esp, 0x3c
mov eax, dword [esp + 0x54]
push eax
push ebp
call fcn.100589b0
mov ebx, dword [esp + 0xfc]
add esp, 8
cmp byte [esp + 0x5d], 3
jne 0x1006d2cd
push str.DISTINCT
push esi
call fcn.1006e1c0
add esp, 8
mov eax, dword [esp + 0x68]
test eax, eax
je 0x1006d30c
mov eax, dword [esp + 0x6c]
test eax, eax
mov eax, str.RIGHT_PART_OF_ORDER_BY
jg 0x1006d2e7
mov eax, str.ORDER_BY
push eax
push esi
call fcn.1006e1c0
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x100]
push ecx
lea ecx, [esp + 0x74]
mov eax, dword [edx]
push eax
push ecx
push ebx
push esi
call fcn.1006e210
add esp, 0x1c
mov edx, dword [esp + 0xe8]
push edx
push ebp
call fcn.100589b0
mov dword [esp + 0x1c], 0
add esp, 8
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0xc4]
test edi, edi
mov dword [esi + 0x1d0], eax
jne 0x1006d359
mov ecx, dword [esp + 0xf8]
cmp byte [ecx], 9
jne 0x1006d359
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
push edx
push eax
push esi
call fcn.1006e5a0
add esp, 0xc
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0x20]
push ecx
push esi
call fcn.10029770
mov edx, dword [esp + 0xc4]
push edx
push esi
call fcn.10029770
add esp, 0x10
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xdc
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xdc
ret