Function at 0x1006a890
Capabilities:
Authenticate hmac
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xb8
push ebx
mov ebx, dword [esp + 0xc8]
push ebp
mov ebp, dword [esp + 0xd4]
push esi
mov edx, dword [ebx + 0x1ec]
lea eax, [ebx + 0x50]
push edi
mov edi, dword [esp + 0xcc]
mov dword [esp + 0x68], eax
mov dword [esp + 0x58], 0
mov eax, dword [edi]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0x40]
mov dword [esp + 0x20], eax
movzx eax, byte [ebp + 0x2c]
lea ecx, [eax + eax*8]
mov eax, dword [ebx + 4]
lea eax, [eax + ecx*8]
xor ecx, ecx
add eax, 8
mov dword [esp + 0x74], eax
mov esi, dword [eax + 0x2c]
mov dword [esp + 0x2c], esi
test edx, edx
jle 0x1006a908
lea eax, [ebx + 0x1f0]
cmp dword [eax], esi
je 0x1006a9f9
inc ecx
add eax, 4
cmp ecx, edx
jl 0x1006a8f8
xor eax, eax
xor edx, edx
mov esi, dword [esp + 0xd8]
not eax
and eax, dword [esp + 0xe0]
not edx
and edx, dword [esp + 0xe4]
mov ecx, esi
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x4c], edx
mov eax, dword [ebx + 0x40]
mov edx, dword [ebx + 0x44]
call fcn.10084840
mov ebx, dword [esp + 0xd0]
and eax, 1
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0x38]
dec eax
mov dword [edi + 0x38], eax
mov dword [ebp + 0x10], eax
mov dword [ebp + 0xc], eax
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x38]
dec eax
mov dword [edi + 0x38], eax
cmp byte [ebp + 0x2c], 0
mov dword [esp + 0x7c], eax
mov dword [ebp + 0x18], eax
jbe 0x1006a98d
mov ecx, dword [esp + 0x74]
test byte [ecx + 0x24], 8
je 0x1006a98d
mov eax, dword [edi + 0x2c]
inc eax
push eax
push 0
push 0x46
mov dword [edi + 0x2c], eax
push ebx
mov dword [ebp], eax
call fcn.1005c490
add esp, 0x10
mov ecx, esi
test esi, esi
jle 0x1006a9b5
mov edx, dword [esp + 0xd4]
lea eax, [esi + esi*4]
shl eax, 4
add edx, 0x2f0
add eax, edx
cmp dword [eax], 0
jne 0x1006a9b5
dec ecx
sub eax, 0x50
test ecx, ecx
jg 0x1006a9a8
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0xd4]
add eax, eax
mov eax, dword [ecx + eax*8 + 0x2fc]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x74]
test byte [eax + 0x28], 0x10
je 0x1006aa98
mov ecx, dword [ebx + 0x6c]
mov esi, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
cmp dword [ebx + 0x70], ecx
jg 0x1006aa0a
push edx
push 0
push esi
push 0xd
push ebx
call fcn.10025690
add esp, 0x14
jmp 0x1006aa35
mov eax, 1
xor edx, edx
call fcn.10084690
jmp 0x1006a90c
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], edx
jg 0x1006aa5d
push 0
push dword [esp + 0x40]
push esi
push 0xe
push ebx
call fcn.10025690
mov edx, eax
mov byte [ebp + 0x2d], 0xb
add esp, 0x14
mov dword [ebp + 0x34], edx
jmp 0x1006c22c
lea eax, [edx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0xe
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov dword [ebp + 0x34], edx
mov byte [ebp + 0x2d], 0xb
jmp 0x1006c22c
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x24]
test edx, 0x400
je 0x1006aece
mov edx, eax
movzx eax, word [edx + 0x28]
mov dword [esp + 0x10], eax
lea ecx, [eax + 2]
cmp ecx, 1
jne 0x1006aae5
mov al, byte [edi + 0x13]
test al, al
jne 0x1006aad0
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x18], eax
jmp 0x1006ab13
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov eax, dword [edi + eax*4 + 0x94]
mov dword [esp + 0x18], eax
jmp 0x1006ab13
mov edx, dword [edi + 0x1c]
mov esi, dword [edi + 0x20]
mov dword [esp + 0x18], esi
cmp ecx, edx
jg 0x1006ab00
lea eax, [ecx + esi]
sub edx, ecx
mov dword [edi + 0x20], eax
mov dword [edi + 0x1c], edx
jmp 0x1006ab0f
mov eax, dword [edi + 0x2c]
lea edx, [eax + 1]
add eax, ecx
mov dword [esp + 0x18], edx
mov dword [edi + 0x2c], eax
mov edx, dword [esp + 0x20]
mov eax, dword [ebp + 0xc]
xor esi, esi
mov dword [esp + 0x34], eax
cmp dword [esp + 0x10], esi
jbe 0x1006ab7a
mov ebx, dword [esp + 0x10]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x1006ab6e
mov ecx, dword [esp + 0x18]
add ecx, 2
add ecx, esi
test byte [eax + 0xc], 1
je 0x1006ab59
push ecx
push dword [esp + 0x34]
push esi
push ebp
push eax
push edi
call fcn.10019810
mov eax, dword [ebp + 0x10]
add esp, 0x18
mov dword [esp + 0x34], eax
jmp 0x1006ab6a
mov eax, dword [eax]
push 1
push ecx
push dword [eax + 0x10]
push edi
call fcn.10019e20
add esp, 0x10
mov edx, dword [esp + 0x20]
inc esi
cmp esi, ebx
jl 0x1006ab26
mov ebx, dword [esp + 0xd0]
mov ecx, dword [ebx + 0x6c]
mov edx, dword [edx + 0x18]
cmp dword [ebx + 0x70], ecx
jg 0x1006ab99
push 0
push dword [esp + 0x1c]
push edx
push 0x46
push ebx
call fcn.10025690
add esp, 0x14
jmp 0x1006abc8
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [esp + 0x18]
mov ecx, dword [ebx + 0x6c]
inc esi
cmp dword [ebx + 0x70], ecx
jg 0x1006abe9
push 0
push esi
push dword [esp + 0x18]
push 0x46
push ebx
call fcn.10025690
add esp, 0x14
jmp 0x1006ac18
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x20]
mov edx, dword [ebx + 0x6c]
movzx esi, byte [eax + 0x1c]
mov eax, dword [eax + 0x20]
neg esi
mov dword [esp + 0x14], eax
sbb esi, esi
and esi, 0xfffffffa
dec esi
cmp dword [ebx + 0x70], edx
jg 0x1006ac52
push dword [esp + 0x18]
push dword [esp + 0x38]
push dword [esp + 0x34]
push 9
push ebx
call fcn.10025690
add esp, 0x14
mov edx, eax
jmp 0x1006ac8c
mov edi, dword [esp + 0x2c]
lea eax, [edx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x34]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x18]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0xcc]
mov dword [eax + ecx*4], 9
mov dword [eax + ecx*4 + 0x10], 0
push esi
push dword [esp + 0x18]
push edx
push ebx
call fcn.1005c980
mov eax, dword [esp + 0x30]
add esp, 0x10
mov ecx, dword [esp + 0x10]
mov byte [eax + 0x1c], 0
mov eax, dword [esp + 0x2c]
mov edx, dword [ebp + 0x38]
mov dword [ebp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov al, byte [eax + 0x31]
neg al
sbb al, al
and al, 0x6e
add al, 0x3c
sub ecx, 1
mov byte [ebp + 0x2d], al
mov eax, dword [ebx + 0x6c]
mov dword [ebp + 0x34], eax
mov dword [esp + 0x10], ecx
js 0x1006c22c
lea esi, [edx + edx*4]
shl esi, 2
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x30]
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x14], edx
cmp ecx, 0x10
jge 0x1006ad18
mov eax, dword [esp + 0x20]
mov ax, word [eax + 0x1e]
shr ax, cl
test al, 1
je 0x1006ad14
push edx
push ebp
call fcn.1001d680
add esp, 8
jmp 0x1006aeb8
mov ecx, dword [esp + 0x10]
test byte [edx + 0xc], 1
je 0x1006aebc
mov eax, dword [esp + 0x54]
cmp byte [eax + 0x51], 0
jne 0x1006add3
mov eax, dword [ebp + 0x3c]
sub esi, 0x14
mov dword [esp + 0x34], esi
mov ecx, dword [eax + esi + 4]
test ecx, ecx
jns 0x1006ad46
mov ecx, dword [ebx + 0x6c]
dec ecx
mov eax, dword [ebx]
cmp byte [eax + 0x51], 0
je 0x1006ad55
mov eax, 0x10095994
jmp 0x1006ad5e
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 0xc]
mov esi, dword [eax + 8]
mov al, byte [eax]
mov dword [esp + 0x38], ecx
mov ecx, dword [ebx + 0x6c]
mov byte [esp + 0x43], al
cmp dword [ebx + 0x70], ecx
jg 0x1006ad8e
push edx
push esi
push dword [esp + 0x40]
movzx eax, al
push eax
push ebx
call fcn.10025690
add esp, 0x14
jmp 0x1006add3
lea eax, [ecx + 1]
xor edi, edi
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov bl, byte [esp + 0x43]
mov word [eax + ecx*4 + 2], di
mov edi, dword [esp + 0x38]
mov byte [eax + ecx*4], bl
mov ebx, dword [esp + 0xd0]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0xcc]
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
push 0
push 0x34
push dword [edi]
call fcn.1003de20
mov esi, eax
add esp, 0xc
test esi, esi
je 0x1006aeb4
push 0x34
push 0
push esi
call sub.VCRUNTIME140.dll_memset
or eax, 0xffffffff
mov byte [esi], 0x35
push esi
mov word [esi + 0x22], ax
call fcn.10020a60
mov eax, dword [edi]
add esp, 0x10
mov eax, dword [eax + 0x78]
cmp dword [esi + 0x18], eax
jle 0x1006ae21
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.1003fb40
add esp, 0xc
mov eax, dword [esp + 0x14]
push 0
push 0x35
push dword [esp + 0x5c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
call fcn.1003de20
mov edi, eax
add esp, 0xc
test edi, edi
je 0x1006ae6a
push 0x34
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov byte [edi], 0xa8
or eax, 0xffffffff
mov word [edi + 0x22], ax
lea eax, [edi + 0x34]
mov dword [edi + 8], eax
mov byte [eax], 0
mov dword [edi + 0x18], 1
mov dword [esi + 0x10], edi
test edi, edi
je 0x1006ae99
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
add ecx, 2
add eax, ecx
push 0
mov dword [edi + 0x1c], eax
push dword [ebp + 0x18]
mov edi, dword [esp + 0xd4]
push esi
push edi
call fcn.10042e70
add esp, 0x10
jmp 0x1006aea0
mov edi, dword [esp + 0xcc]
push esi
push dword [esp + 0x58]
mov dword [esi + 0xc], 0
call fcn.10042b80
add esp, 8
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
sub ecx, 1
mov dword [esp + 0x10], ecx
jns 0x1006ace3
jmp 0x1006c22c
test dl, 5
setne cl
bt edx, 8
setb al
test al, cl
je 0x1006af9c
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x30]
mov esi, dword [eax]
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
push eax
push dword [esp + 0x34]
mov dword [esp + 0x1c], eax
push 0
push ebp
push esi
push edi
call fcn.10019810
mov ecx, dword [esp + 0x2c]
mov edx, eax
add esp, 0x18
cmp edx, ecx
je 0x1006af2a
test ecx, ecx
je 0x1006af2a
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x1006af2a
movzx eax, al
mov dword [edi + eax*4 + 0x94], ecx
inc byte [edi + 0x13]
mov ecx, dword [ebx + 0x6c]
mov edi, dword [ebp + 0x10]
cmp dword [ebx + 0x70], ecx
jg 0x1006af48
push edx
push edi
push dword [esp + 0x34]
push 0x1e
push ebx
call fcn.10025690
add esp, 0x14
jmp 0x1006af7a
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov ebx, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0xd0]
mov dword [eax + ecx*4], 0x1e
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebp + 0x2d], 0xaa
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [ebp + 0x48]
and eax, dword [ebp + 0x4c]
or ecx, eax
jne 0x1006c22c
or word [esi + 0xa], 4
jmp 0x1006c22c
mov eax, edx
and eax, 0x102
cmp eax, 0x102
jne 0x1006b1e7
xor ecx, ecx
mov dword [esp + 0x50], 0xaa
xor esi, esi
mov dword [esp + 0x24], 0
mov dword [esp + 0x34], ecx
test dl, 0x20
je 0x1006afde
mov eax, dword [esp + 0x20]
mov dword [esp + 0x38], 4
mov eax, dword [eax + 0x30]
mov esi, dword [eax]
jmp 0x1006afe2
mov dword [esp + 0x38], ecx
test dl, 0x10
je 0x1006aff9
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 0x30]
mov ecx, dword [ecx + eax]
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x30]
test eax, eax
je 0x1006b007
mov dword [esp + 0x34], esi
mov esi, ecx
test esi, esi
je 0x1006b0d4
mov edx, dword [esi]
mov dword [esp + 0x10], 0x18161719
mov dword [esp + 0x38], edx
mov eax, dword [edx + 0x10]
push eax
mov dword [esp + 0x18], eax
call fcn.100438f0
add esp, 4
test eax, eax
je 0x1006b074
mov al, byte [edi + 0x13]
test al, al
jne 0x1006b040
inc dword [edi + 0x2c]
mov esi, dword [edi + 0x2c]
jmp 0x1006b04f
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov esi, dword [edi + eax*4 + 0x94]
push 1
push esi
push dword [edx + 0x10]
push edi
call fcn.10019e20
mov eax, dword [esp + 0x48]
add esp, 0x10
mov ecx, esi
movzx eax, byte [eax]
inc eax
and eax, 2
or eax, 1
mov al, byte [esp + eax + 0x10]
jmp 0x1006b0a4
lea eax, [esp + 0x70]
push eax
push dword [esp + 0x18]
push edi
call fcn.10042540
push esi
push ebp
mov dword [esp + 0x28], eax
call fcn.1001d680
mov eax, dword [esp + 0x4c]
add esp, 0x14
mov esi, dword [esp + 0x70]
movzx ecx, byte [eax]
mov al, byte [esp + ecx - 0x26]
mov ecx, dword [esp + 0x14]
push ecx
push dword [esp + 0x40]
movzx eax, al
push dword [esp + 0x34]
push eax
push ebx
call fcn.1005c4f0
add esp, 0x14
test esi, esi
je 0x1006b0f0
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x1006b0f0
movzx eax, al
mov dword [edi + eax*4 + 0x94], esi
inc byte [edi + 0x13]
jmp 0x1006b0f0
push dword [esp + 0x14]
xor eax, 1
push dword [esp + 0x30]
lea eax, [eax*4 + 0x20]
push eax
push ebx
call fcn.1005c490
add esp, 0x10
mov esi, dword [esp + 0x34]
test esi, esi
je 0x1006b177
mov eax, dword [esi]
inc dword [edi + 0x2c]
mov ecx, dword [edi + 0x2c]
push 1
push ecx
push dword [eax + 0x10]
mov dword [esp + 0x20], eax
push edi
mov dword [esp + 0x34], ecx
call fcn.10019e20
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x10]
push eax
mov dword [esp + 0x28], eax
call fcn.100438f0
add esp, 0x14
test eax, eax
jne 0x1006b14e
mov al, byte [edx]
cmp al, 0x38
je 0x1006b13a
cmp al, 0x36
jne 0x1006b14e
mov eax, dword [esp + 0x30]
xor eax, 1
lea edx, [eax*2 + 0x37]
mov dword [esp + 0x50], edx
jmp 0x1006b15d
mov eax, dword [esp + 0x30]
lea eax, [eax*2 + 0x36]
mov dword [esp + 0x50], eax
push dword [esp + 0x14]
call fcn.100438f0
add esp, 4
test eax, eax
jne 0x1006b177
push esi
push ebp
call fcn.1001d680
add esp, 8
cmp dword [esp + 0x30], 0
mov ecx, dword [ebx + 0x6c]
sete al
mov dword [ebp + 0x34], ecx
add al, 4
mov byte [ebp + 0x2d], al
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0x30], eax
mov ebp, dword [esp + 0x50]
cmp ebp, 0xaa
je 0x1006c22c
inc dword [edi + 0x2c]
mov esi, dword [edi + 0x2c]
push esi
push eax
push 0x80
push ebx
call fcn.1005c490
push esi
push dword [esp + 0x50]
push dword [esp + 0x3c]
push ebp
push ebx
call fcn.1005c4f0
mov eax, dword [ebx + 0x6c]
add esp, 0x24
test eax, eax
jle 0x1006c22c
lea ecx, [eax + eax*4]
mov edx, 0x53
mov eax, dword [ebx + 0x68]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x1006c22c
test edx, 0x200
je 0x1006ba05
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x48], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x28], 0
movzx eax, word [ecx + 0x1a]
movzx esi, word [ecx + 0x18]
mov dword [esp + 0x6c], eax
movzx eax, word [ecx + 0x1c]
mov ecx, dword [ecx + 0x20]
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x64], 0
mov byte [esp + 0x1f], 0
test byte [eax + 0x2c], 1
mov byte [esp + 0x43], 0
mov dword [esp + 0x18], ecx
je 0x1006b26d
cmp byte [eax + 0x2f], 0
jle 0x1006b26d
cmp word [ecx + 0x32], si
jbe 0x1006b26d
mov byte [esp + 0x1f], 1
mov dword [esp + 0x28], 1
movzx esi, si
mov dword [esp + 0x38], esi
test dl, 0x20
je 0x1006b2a7
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x20]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x48], eax
lea eax, [esi + 1]
mov dword [esp + 0x38], eax
movzx eax, word [edi + 0x1a]
mov edi, dword [esp + 0xcc]
cmp dword [esp + 0x28], eax
ja 0x1006b2a7
mov dword [esp + 0x28], eax
test dl, 0x10
je 0x1006b350
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x20]
mov eax, dword [eax + 0x30]
mov edx, dword [eax + edx*4]
movzx eax, word [ebp + 0x1c]
mov ebp, dword [esp + 0xdc]
mov dword [esp + 0x10], edx
cmp dword [esp + 0x28], eax
ja 0x1006b2db
mov dword [esp + 0x28], eax
mov eax, 0x100
test word [edx + 0xa], ax
je 0x1006b322
mov eax, dword [edi + 0x2c]
inc eax
push eax
push 1
push 0x46
mov dword [edi + 0x2c], eax
push ebx
mov dword [ebp + 0x24], eax
call fcn.1005c490
mov eax, dword [ebx + 0x6c]
xor ecx, ecx
shl dword [ebp + 0x24], 1
add esp, 0x10
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x1c]
cmp byte [esi + eax], 1
sete cl
xor ecx, dword [esp + 0x30]
or dword [ebp + 0x24], ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x48]
test edx, edx
jne 0x1006b354
mov eax, dword [ecx + 4]
movsx edx, word [eax + esi*2]
test edx, edx
js 0x1006b346
mov eax, dword [ecx + 0xc]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0xc], 0
je 0x1006b34b
cmp edx, 0xfffffffe
jne 0x1006b350
mov byte [esp + 0x1f], 1
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x18]
movzx ecx, word [eax + 0x32]
mov dword [esp + 0x14], ecx
cmp word [esp + 0x3c], cx
jae 0x1006b380
mov eax, dword [eax + 0x1c]
xor ecx, ecx
cmp byte [esi + eax], cl
mov eax, dword [esp + 0x30]
sete cl
cmp eax, ecx
je 0x1006b38f
mov ecx, dword [esp + 0x14]
jmp 0x1006b384
mov eax, dword [esp + 0x30]
test eax, eax
je 0x1006b3c2
cmp cx, word [esp + 0x3c]
jne 0x1006b3c2
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x48], eax
mov al, byte [esp + 0x1f]
mov byte [esp + 0x43], al
mov eax, dword [esp + 0x6c]
movzx eax, al
movzx ecx, cx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], edx
mov byte [esp + 0x1f], 0
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x60]
push ecx
push dword [esp + 0x2c]
push eax
push ebp
push edi
call fcn.10018f30
mov edx, eax
add esp, 0x14
mov eax, dword [esp + 0x60]
mov dword [esp + 0x28], edx
test eax, eax
je 0x1006b404
cmp word [esp + 0x4c], 0
je 0x1006b404
lea ecx, [esi + eax]
push ecx
push dword [esp + 0x58]
call fcn.1003e040
mov edx, dword [esp + 0x30]
add esp, 8
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x48]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x50], eax
test ecx, ecx
je 0x1006b421
test byte [ecx + 0xc], 0x28
mov dword [esp + 0x58], 0
je 0x1006b429
mov dword [esp + 0x58], 1
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1006b43f
test byte [eax + 0xc], 0x28
mov dword [esp + 0x34], 0
je 0x1006b447
mov dword [esp + 0x34], 1
test ecx, ecx
jne 0x1006b5d0
cmp word [esp + 0x3c], cx
ja 0x1006b5d0
mov dword [esp + 0x24], ecx
mov al, byte [esp + 0x1f]
mov dword [esp + 0x3c], esi
test al, al
je 0x1006b496
lea eax, [esi + edx]
push eax
push 0
push 0x49
push ebx
call fcn.1005c490
lea eax, [esi + 1]
mov dword [esp + 0x68], 0
mov dword [esp + 0x4c], eax
add esp, 0x10
mov al, byte [esp + 0x1f]
mov dword [esp + 0x24], 1
push dword [esp + 0x60]
mov ecx, dword [esp + 0x40]
movzx eax, al
sub ecx, eax
push ecx
push dword [esp + 0x30]
push edi
call fcn.100192d0
mov ecx, dword [esp + 0x30]
add esp, 0x10
movzx eax, word [ecx + 0x2a]
test ax, ax
je 0x1006b4c4
cmp dword [esp + 0x3c], eax
je 0x1006b50d
test dword [ecx + 0x24], 0x40000
je 0x1006b4dc
push dword [esp + 0x44]
push 0x77
push ebx
call fcn.1005c430
add esp, 0xc
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x28]
push dword [esp + 0x2c]
push dword [esp + 0x58]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x3c]
push dword [esp + 0x50]
movzx eax, byte [ecx + eax*2 + 0x10086f8c]
push eax
push ebx
call fcn.1005c5d0
add esp, 0x18
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1006b694
mov eax, dword [eax]
mov edx, dword [esp + 0x28]
add edx, esi
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x4c]
movzx eax, ax
push eax
push edx
push ecx
push edi
mov dword [esp + 0x34], ecx
call fcn.10019e20
push dword [esp + 0x20]
push ebp
push ebx
call fcn.10079130
mov edx, dword [esp + 0x40]
push edx
call fcn.100402f0
add esp, 0x20
test eax, eax
je 0x1006b56e
push dword [esp + 0x50]
mov eax, dword [esp + 0x2c]
add eax, esi
push eax
push 0x32
push ebx
call fcn.1005c490
mov edx, dword [esp + 0x34]
add esp, 0x10
mov eax, dword [esp + 0x64]
test eax, eax
je 0x1006b5a1
mov ecx, dword [esp + 0x4c]
push eax
movzx eax, cx
push eax
push edx
call fcn.10071e50
push dword [esp + 0x70]
mov ecx, dword [esp + 0x5c]
movzx eax, cx
push eax
mov eax, dword [esp + 0x3c]
add eax, esi
push eax
push edi
call fcn.100192d0
add esp, 0x1c
mov ecx, dword [esp + 0x4c]
push dword [esp + 0x24]
movzx eax, cx
add esi, eax
call fcn.100438f0
add esp, 4
test eax, eax
jne 0x1006b68a
push dword [esp + 0x10]
push ebp
call fcn.1001d680
add esp, 8
jmp 0x1006b6b8
mov dword [esp + 0x24], 1
test ecx, ecx
je 0x1006b45e
mov eax, dword [ecx]
add edx, esi
mov ecx, dword [esp + 0x6c]
movzx ecx, cx
push ecx
mov eax, dword [eax + 0x10]
push edx
push eax
push edi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x48], ecx
call fcn.10019e20
push dword [esp + 0x58]
push ebp
push ebx
call fcn.10079130
mov edx, dword [esp + 0x78]
push edx
call fcn.100402f0
add esp, 0x20
test eax, eax
je 0x1006b635
push dword [esp + 0x50]
mov eax, dword [esp + 0x2c]
add eax, esi
push eax
push 0x32
push ebx
call fcn.1005c490
mov edx, dword [esp + 0x6c]
add esp, 0x10
mov eax, dword [esp + 0x60]
test eax, eax
je 0x1006b64d
add eax, esi
push eax
push dword [esp + 0x3c]
push edx
call fcn.10071e50
add esp, 0xc
push dword [esp + 0x5c]
mov eax, esi
add eax, dword [esp + 0x3c]
mov dword [esp + 0x40], eax
call fcn.100438f0
add esp, 4
test eax, eax
jne 0x1006b67b
push dword [esp + 0x48]
push ebp
call fcn.1001d680
add esp, 8
xor al, al
jmp 0x1006b496
mov dword [esp + 0x58], 1
xor al, al
jmp 0x1006b496
mov dword [esp + 0x34], 1
jmp 0x1006b6b8
cmp byte [esp + 0x43], 0
je 0x1006b6b8
mov eax, dword [esp + 0x28]
add eax, esi
push eax
push 0
push 0x49
push ebx
call fcn.1005c490
add esp, 0x10
mov dword [esp + 0x34], 0
inc esi
push dword [esp + 0x60]
push dword [esp + 0x58]
call fcn.1003dd80
push dword [esp + 0x6c]
push dword [esp + 0x60]
call fcn.1003dd80
mov eax, dword [ebx + 0x6c]
add esp, 0x10
mov dword [ebp + 0x34], eax
test esi, esi
je 0x1006b706
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
push esi
push dword [esp + 0x2c]
push dword [esp + 0x58]
movzx eax, byte [eax + ecx*2 + str.__]
push dword [esp + 0x50]
push eax
push ebx
call fcn.1005c5d0
add esp, 0x18
mov esi, dword [esp + 0x20]
mov eax, dword [esi + 0x24]
test eax, 0x40000
je 0x1006b728
push 1
push dword [esp + 0x48]
push 0x77
push ebx
call fcn.1005c490
mov eax, dword [esi + 0x24]
add esp, 0x10
mov edx, dword [esp + 0xd4]
test al, 0x40
je 0x1006b74a
test byte [edx + 0x2c], 0x20
jne 0x1006b74a
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x58], 1
jmp 0x1006b877
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x58], 0
mov eax, dword [ecx + 0xc]
test byte [eax + 0x24], 0x20
jne 0x1006b7bd
movzx eax, word [edx + 0x2c]
test eax, 0x400
jne 0x1006b78f
test eax, 0x1000
je 0x1006b777
cmp byte [edx + 0x31], 1
je 0x1006b78f
push dword [esp + 0x44]
mov esi, dword [esp + 0x30]
push esi
push ecx
push edx
call fcn.100195e0
add esp, 0x10
jmp 0x1006b877
inc dword [edi + 0x2c]
mov esi, dword [edi + 0x2c]
push esi
push dword [esp + 0x48]
push 0x87
push ebx
call fcn.1005c490
push esi
mov esi, dword [esp + 0x40]
push 0
push esi
push 0x1f
push ebx
call fcn.1005c4f0
add esp, 0x24
jmp 0x1006b877
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x2c]
cmp esi, edx
je 0x1006b87f
push eax
call fcn.10053080
mov esi, eax
mov dword [esp + 0x3c], esi
movzx ecx, word [esi + 0x32]
push ecx
push edi
call fcn.10048c20
movzx ecx, word [esi + 0x32]
add esp, 0xc
mov dword [esp + 0x24], eax
xor edi, edi
xor eax, eax
mov edx, ecx
cmp ax, cx
jae 0x1006b858
mov ebp, dword [esp + 0x18]
mov edi, edi
movzx edx, word [ebp + 0x34]
xor ecx, ecx
test edx, edx
je 0x1006b829
mov eax, dword [esi + 4]
movzx esi, word [eax + edi*2]
mov eax, dword [ebp + 4]
cmp si, word [eax]
je 0x1006b9be
inc ecx
add eax, 2
cmp ecx, edx
jl 0x1006b814
mov esi, dword [esp + 0x38]
or ecx, 0xffffffff
mov eax, dword [esp + 0x24]
add eax, edi
push eax
movsx eax, cx
push eax
push dword [esp + 0x4c]
push 0x5a
push ebx
call fcn.1005c4f0
movzx ecx, word [esi + 0x32]
inc edi
add esp, 0x14
cmp edi, ecx
jl 0x1006b800
mov ebp, dword [esp + 0xdc]
mov edx, ecx
mov esi, dword [esp + 0x2c]
movzx eax, dx
push eax
push dword [esp + 0x28]
push dword [esp + 0x84]
push esi
push 0x1c
push ebx
call fcn.1005c5d0
add esp, 0x18
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x18]
cmp dword [ebp], 0
jne 0x1006b98f
mov eax, dword [esp + 0xd4]
test byte [eax + 0x2c], 0x20
jne 0x1006b98f
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x14], eax
test eax, eax
je 0x1006b98f
mov dword [esp + 0x84], esi
lea edi, [esp + 0x80]
xor esi, esi
mov dword [esp + 0x94], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0x98], 0x10078cc0
mov dword [esp + 0xac], edi
mov dword [esp + 0x88], edx
cmp dword [eax], esi
jle 0x1006b98f
mov ebp, dword [esp + 0xd4]
lea edi, [eax + 4]
mov ebx, eax
lea ecx, [ecx]
mov eax, dword [ecx + 4]
cmp word [eax + esi*2], 0xfffe
jne 0x1006b979
mov dword [esp + 0x8c], esi
mov eax, dword [edi]
mov dword [esp + 0x80], eax
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x1006b952
push eax
lea eax, [esp + 0x98]
push eax
call fcn.10078760
add esp, 8
push dword [ebp + 8]
lea eax, [esp + 0x98]
push eax
call fcn.10069900
push dword [ebp + 0xc]
lea eax, [esp + 0xa0]
push eax
call fcn.10069900
mov ecx, dword [esp + 0x28]
add esp, 0x10
inc esi
add edi, 0x18
cmp esi, dword [ebx]
jl 0x1006b920
mov ebx, dword [esp + 0xd0]
mov ebp, dword [esp + 0xdc]
mov eax, dword [ecx + 0x24]
test eax, eax
je 0x1006b9ab
push dword [esp + 0x68]
push dword [esp + 0x30]
push eax
call fcn.100788c0
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [esp + 0x20]
test dword [edx + 0x24], 0x1000
je 0x1006b9ca
mov byte [ebp + 0x2d], 0xaa
jmp 0x1006b9d7
mov esi, dword [esp + 0x38]
movzx ecx, cx
jmp 0x1006b82c
cmp dword [esp + 0x30], 0
sete al
add al, 4
mov byte [ebp + 0x2d], al
mov eax, dword [esp + 0x44]
mov dword [ebp + 0x30], eax
mov al, byte [edx + 0x26]
and al, 1
mov byte [ebp + 0x2e], al
test byte [edx + 0x24], 0xf
jne 0x1006b9f0
mov byte [ebp + 0x2f], 1
mov eax, dword [esp + 0x58]
neg eax
sbb eax, eax
not eax
and eax, ecx
mov dword [esp + 0x58], eax
jmp 0x1006c22e
test edx, 0x2000
je 0x1006c1ea
mov eax, dword [edi + 0x28]
dec dword [edi + 0x38]
inc dword [edi + 0x2c]
mov dword [esp + 0x70], eax
inc eax
mov ecx, dword [esp + 0x74]
mov dword [edi + 0x28], eax
mov eax, dword [edi + 0x38]
mov edx, dword [edi + 0x2c]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x50], 0
mov dword [esp + 0x6c], edx
mov dword [esp + 0x3c], 0
mov eax, dword [eax + 0x30]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], ecx
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xd4]
mov byte [ebp + 0x2d], 0x42
mov dword [ebp + 0x30], edx
mov al, byte [eax + 0x2e]
cmp al, 1
jbe 0x1006bb97
mov ecx, dword [esp + 0x54]
movzx eax, al
sub eax, esi
dec eax
mov dword [esp + 0x24], eax
push 0
lea eax, [eax + eax*8]
lea eax, [eax*8 + 0x50]
push eax
test ecx, ecx
je 0x1006babe
push ecx
call fcn.1003de20
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x28], ecx
jmp 0x1006bacc
call fcn.1004d0c0
add esp, 8
mov dword [esp + 0x28], eax
mov ecx, eax
test ecx, ecx
jne 0x1006bae9
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0xe4]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret
mov edx, dword [esp + 0x24]
lea edi, [ecx + 8]
mov esi, dword [esp + 0x74]
lea eax, [edx + 1]
movzx eax, al
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov ecx, 0x12
mov eax, dword [esp + 0xd4]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 4]
add ecx, 8
mov dword [esp + 0x5c], ecx
cmp edx, 1
jl 0x1006bb5f
mov eax, dword [esp + 0x28]
lea ebx, [ebp + 0x7c]
add eax, 0x50
mov dword [esp + 0x24], eax
mov ebp, eax
lea esp, [esp]
movzx eax, byte [ebx]
lea ebx, [ebx + 0x50]
mov edi, ebp
add ebp, 0x48
lea eax, [eax + eax*8]
lea esi, [ecx + eax*8]
mov ecx, 0x12
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x5c]
sub edx, 1
jne 0x1006bb30
mov ebx, dword [esp + 0xd0]
mov ebp, dword [esp + 0xdc]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0xcc]
mov edx, dword [esp + 0xd4]
test byte [edx + 0x2c], 0x10
jne 0x1006bbde
test byte [ecx + 0x24], 0x20
jne 0x1006bba7
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
push eax
push 0
push 0x49
push ebx
mov dword [esp + 0x4c], eax
call fcn.1005c490
add esp, 0x10
jmp 0x1006bbd4
mov eax, dword [esp + 0xd4]
mov eax, dword [eax + 4]
mov dword [esp + 0x28], eax
jmp 0x1006bb6a
push ecx
call fcn.10053080
mov esi, eax
mov eax, dword [edi + 0x28]
mov dword [esp + 0x40], eax
lea ecx, [eax + 1]
mov dword [edi + 0x28], ecx
movzx ecx, word [esi + 0x32]
push ecx
push eax
push 0x71
push ebx
call fcn.1005c490
push esi
push edi
call fcn.10067660
add esp, 0x1c
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x10], eax
push dword [esp + 0x6c]
push 0
push 0x46
push ebx
call fcn.1005c490
mov dword [esp + 0x88], eax
add esp, 0x10
mov eax, dword [esp + 0x68]
mov edx, dword [eax + 0xc]
cmp edx, 1
jle 0x1006bcae
xor ecx, ecx
mov dword [esp + 0x24], ecx
test edx, edx
jle 0x1006bcae
mov edx, dword [esp + 0x20]
xor esi, esi
mov ebp, dword [esp + 0x54]
xor ebx, ebx
mov eax, dword [eax + 0x14]
add eax, esi
cmp eax, edx
je 0x1006bc6e
test byte [eax + 0xa], 6
jne 0x1006bc6e
mov edi, 0x1fff
test word [eax + 0xc], di
mov edi, dword [esp + 0xcc]
je 0x1006bc6e
mov eax, dword [eax]
test eax, eax
je 0x1006bc57
push 0
push 0
push eax
push ebp
call fcn.1001fcc0
add esp, 0x10
jmp 0x1006bc59
xor eax, eax
push eax
push ebx
push edi
call fcn.1003ffc0
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov edx, dword [esp + 0x20]
mov ebx, eax
mov eax, dword [esp + 0x68]
inc ecx
add esi, 0x30
mov dword [esp + 0x24], ecx
cmp ecx, dword [eax + 0xc]
jl 0x1006bc20
mov ebp, dword [esp + 0xdc]
test ebx, ebx
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0xd0]
je 0x1006bcae
mov eax, dword [esp + 0x30]
push eax
push 0
push 0x1002c
push edi
call fcn.1004dda0
add esp, 0x10
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov esi, 0x400
push str.MULTI_INDEX_OR
push 1
push edi
mov ax, word [eax + 0x2c]
and ax, si
or ax, 0x20
movzx eax, ax
mov dword [esp + 0x9c], eax
call fcn.100646c0
mov eax, dword [esp + 0x6c]
xor ecx, ecx
add esp, 0xc
mov dword [esp + 0x44], ecx
cmp dword [eax + 0xc], ecx
jle 0x1006c078
mov ebp, dword [esp + 0x2c]
xor edx, edx
mov dword [esp + 0x64], edx
lea esp, [esp]
mov eax, dword [eax + 0x14]
cmp dword [eax + edx + 0x14], ebp
je 0x1006bd14
test word [eax + edx + 0xc], si
je 0x1006c058
mov esi, dword [eax + edx]
xor ebp, ebp
mov eax, dword [esp + 0x30]
mov dword [esp + 0x4c], ebp
test eax, eax
je 0x1006bd2a
mov dword [eax + 0xc], esi
mov esi, eax
lea eax, [ecx + 1]
push eax
push str.INDEX__d
push 1
push edi
call fcn.100646c0
push dword [esp + 0x80]
push dword [esp + 0xa4]
push 0
push 0
push esi
push dword [esp + 0x4c]
push edi
call fcn.10069b00
mov esi, eax
add esp, 0x2c
mov dword [esp + 0x48], esi
test esi, esi
je 0x1006c047
push 0
lea ecx, [esi + 0x2f0]
push ecx
push dword [esp + 0x30]
push edi
call fcn.1006ced0
mov eax, dword [esp + 0xe4]
add esp, 0x10
test byte [eax + 0x2c], 0x10
jne 0x1006bf31
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x44]
mov eax, dword [eax + 0xc]
dec eax
cmp ecx, eax
jne 0x1006bda9
or ebp, 0xffffffff
mov dword [esp + 0x34], ebp
jmp 0x1006bdaf
mov ebp, ecx
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x18]
test byte [eax + 0x24], 0x20
jne 0x1006bdea
mov edx, dword [esp + 0x10]
push edx
push dword [esp + 0x30]
push 0x80
push ebx
call fcn.1005c490
push ebp
push dword [esp + 0x24]
push 0
push dword [esp + 0x58]
push 0x2a
push ebx
call fcn.1005c5d0
add esp, 0x28
mov ebp, eax
jmp 0x1006bf31
push eax
call fcn.10053080
mov dword [esp + 0x84], eax
movzx eax, word [eax + 0x32]
push eax
push edi
mov dword [esp + 0x30], eax
call fcn.10048c20
mov ebp, dword [esp + 0x30]
add esp, 0xc
xor esi, esi
mov dword [esp + 0x5c], eax
test ebp, ebp
je 0x1006be50
mov edi, eax
lea esp, [esp]
mov eax, dword [esp + 0x80]
lea ecx, [esi + edi]
push ecx
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push dword [esp + 0x34]
push dword [esp + 0x24]
push ebx
call fcn.100407b0
inc esi
add esp, 0x14
cmp esi, ebp
jl 0x1006be20
mov edi, dword [esp + 0xcc]
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x5c]
test eax, eax
je 0x1006be7d
push esi
push ebp
push 0
push dword [esp + 0x48]
push 0x1d
push ebx
call fcn.1005c5d0
mov dword [esp + 0x64], eax
add esp, 0x18
mov eax, dword [esp + 0x34]
test eax, eax
js 0x1006befb
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x1006be9a
push dword [esp + 0x10]
push esi
push ebp
push 0x5c
push ebx
call fcn.10025690
add esp, 0x14
jmp 0x1006bec5
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x5c
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push esi
push ebp
push dword [esp + 0x18]
push dword [esp + 0x48]
push 0x84
push ebx
call fcn.1005c5d0
add esp, 0x18
cmp dword [esp + 0x34], 0
je 0x1006befb
mov eax, dword [ebx + 0x6c]
test eax, eax
jle 0x1006befb
lea ecx, [eax + eax*4]
mov edx, 0x10
mov eax, dword [ebx + 0x68]
mov word [eax + ecx*4 - 0x12], dx
cmp esi, 1
jne 0x1006bf1e
test ebp, ebp
je 0x1006bf29
mov al, byte [edi + 0x13]
mov esi, dword [esp + 0x48]
cmp al, 8
jae 0x1006bf2d
movzx eax, al
mov dword [edi + eax*4 + 0x94], ebp
inc byte [edi + 0x13]
jmp 0x1006bf2d
cmp esi, dword [edi + 0x1c]
jle 0x1006bf29
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], ebp
mov esi, dword [esp + 0x48]
mov ebp, dword [esp + 0x4c]
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x1006bf50
push 0
push dword [esp + 0x3c]
push dword [esp + 0x74]
push 0xc
push ebx
call fcn.10025690
add esp, 0x14
jmp 0x1006bf83
mov edx, dword [esp + 0x6c]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x38]
mov dword [eax + ecx*4], 0xc
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test ebp, ebp
je 0x1006bfb0
mov edx, dword [ebx + 0x6c]
jns 0x1006bf8f
lea ebp, [edx - 1]
mov eax, dword [ebx]
cmp byte [eax + 0x51], 0
je 0x1006bf9e
mov eax, 0x10095994
jmp 0x1006bfad
mov eax, dword [ebx + 0x68]
lea ecx, [ebp*4]
add ecx, ebp
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
cmp byte [esi + 0x32], 0
je 0x1006bfbe
mov dword [esp + 0x14], 1
mov ecx, dword [esi + 0x330]
test dword [ecx + 0x24], 0x200
je 0x1006bffc
cmp dword [esp + 0x44], 0
je 0x1006bfdd
mov eax, dword [esp + 0x50]
cmp dword [ecx + 0x20], eax
jne 0x1006bffc
mov eax, dword [esp + 0x18]
test byte [eax + 0x24], 0x20
je 0x1006bff3
mov eax, dword [ecx + 0x20]
mov eax, dword [eax + 0x38]
and al, 3
cmp al, 2
je 0x1006bffc
mov ebp, dword [ecx + 0x20]
mov dword [esp + 0x50], ebp
jmp 0x1006c004
mov dword [esp + 0x50], 0
push esi
call fcn.1006c620
mov ecx, dword [edi + 0xd4]
add esp, 4
test ecx, ecx
jne 0x1006c01b
xor eax, eax
jmp 0x1006c041
mov edx, dword [edi + 8]
test ecx, ecx
jns 0x1006c026
mov ecx, dword [edx + 0x6c]
dec ecx
mov eax, dword [edx]
cmp byte [eax + 0x51], 0
je 0x1006c035
mov eax, 0x10095994
jmp 0x1006c03e
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax + 8]
mov dword [edi + 0xd4], eax
mov ebp, dword [esp + 0x2c]
mov esi, 0x400
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x60]
inc ecx
add edx, 0x30
mov dword [esp + 0x44], ecx
mov dword [esp + 0x64], edx
cmp ecx, dword [eax + 0xc]
jl 0x1006bd00
mov ebp, dword [esp + 0xdc]
mov ecx, dword [edi + 0xd4]
test ecx, ecx
jne 0x1006c086
xor eax, eax
jmp 0x1006c0ac
mov edx, dword [edi + 8]
test ecx, ecx
jns 0x1006c091
mov ecx, dword [edx + 0x6c]
dec ecx
mov eax, dword [edx]
cmp byte [eax + 0x51], 0
je 0x1006c0a0
mov eax, 0x10095994
jmp 0x1006c0a9
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax + 8]
mov dword [edi + 0xd4], eax
mov eax, dword [esp + 0x50]
mov dword [ebp + 0x38], eax
test eax, eax
je 0x1006c0c4
mov eax, dword [esp + 0x70]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x54]
test eax, eax
je 0x1006c0e1
push eax
push esi
mov dword [eax + 0xc], 0
call fcn.10042b80
add esp, 8
mov ecx, dword [esp + 0x78]
mov edx, dword [ebx + 0x6c]
test ecx, ecx
jns 0x1006c0ef
lea ecx, [edx - 1]
mov eax, dword [ebx]
cmp byte [eax + 0x51], 0
je 0x1006c0fe
mov eax, 0x10095994
jmp 0x1006c107
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 4], edx
mov ecx, dword [ebx + 0x6c]
mov edx, dword [ebp + 0xc]
cmp dword [ebx + 0x70], ecx
jg 0x1006c127
push 0
push edx
push 0
push 0xb
push ebx
call fcn.10025690
add esp, 0x14
jmp 0x1006c156
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0xc]
mov edx, dword [esp + 0x38]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x1006c174
push edx
push ebx
push ecx
call fcn.10031450
add esp, 0xc
jmp 0x1006c17d
mov ecx, dword [ecx + 0x40]
mov eax, dword [ebx + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0xd4]
cmp byte [eax + 0x2e], 1
jbe 0x1006c1d4
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x1006c1d4
test esi, esi
je 0x1006c1cb
cmp dword [esi + 0x1e8], 0
je 0x1006c1ab
push ecx
push esi
call fcn.100281e0
add esp, 8
jmp 0x1006c1d4
cmp ecx, dword [esi + 0x138]
jb 0x1006c1cb
cmp ecx, dword [esi + 0x13c]
jae 0x1006c1cb
mov eax, dword [esi + 0x134]
mov dword [ecx], eax
mov dword [esi + 0x134], ecx
jmp 0x1006c1d4
push ecx
call sym.sqlite3.dll_sqlite3_free
add esp, 4
cmp dword [esp + 0x14], 0
jne 0x1006c22c
push dword [esp + 0x20]
push ebp
call fcn.1001d680
add esp, 8
jmp 0x1006c22c
mov eax, dword [esp + 0x74]
test byte [eax + 0x28], 0x20
je 0x1006c1fa
mov byte [ebp + 0x2d], 0xaa
jmp 0x1006c22c
mov ecx, dword [esp + 0x30]
push dword [esp + 0x14]
mov al, byte [ecx + 0x10086fb4]
mov byte [ebp + 0x2d], al
mov eax, dword [esp + 0x30]
push eax
mov dword [ebp + 0x30], eax
movzx eax, byte [ecx + 0x10086fb8]
push eax
push ebx
call fcn.1005c490
add esp, 0x10
mov byte [ebp + 0x2f], 1
inc eax
mov dword [ebp + 0x34], eax
xor eax, eax
mov edx, dword [esp + 0x68]
mov ecx, eax
neg ecx
sbb ecx, ecx
add ecx, 2
mov dword [esp + 0x70], ecx
nop
mov ebp, dword [edx + 0xc]
xor eax, eax
mov edi, dword [edx + 0x14]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
test ebp, ebp
jle 0x1006c44b
jmp 0x1006c260
movzx edx, word [edi + 0xa]
xor esi, esi
test dl, 6
jne 0x1006c42d
mov ebp, dword [esp + 0xdc]
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x2c]
and ecx, dword [ebp + 0x48]
and eax, dword [ebp + 0x4c]
or ecx, eax
je 0x1006c296
mov eax, dword [esp + 0xd4]
mov byte [eax + 0x32], 1
jmp 0x1006c429
mov eax, dword [esp + 0x74]
mov ebp, dword [edi]
test byte [eax + 0x24], 8
je 0x1006c2ac
test byte [ebp + 4], 1
je 0x1006c429
mov ecx, dword [esp + 0x70]
cmp ecx, 1
jne 0x1006c341
mov eax, dword [esp + 0xdc]
xor ecx, ecx
mov dword [esp + 0x94], esi
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], esi
mov eax, dword [eax + 4]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x80]
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x98], 0x100200c0
mov dword [esp + 0xac], eax
test ebp, ebp
je 0x1006c32f
lea eax, [esp + 0x94]
push ebp
push eax
call fcn.10078760
mov ecx, dword [esp + 0xb0]
add esp, 8
test cl, cl
je 0x1006c346
mov eax, 2
mov dword [esp + 0x10], eax
jmp 0x1006c42d
cmp ecx, 3
jge 0x1006c36c
movzx edx, word [edi + 0xa]
test edx, 0x1000
je 0x1006c36c
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x1006c42d
mov eax, 3
mov dword [esp + 0x10], eax
jmp 0x1006c42d
test edx, 0x200
je 0x1006c3e4
mov eax, dword [esp + 0xdc]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x1006c3e4
mov esi, dword [ebx + 0x6c]
mov edx, eax
and eax, 1
shr edx, 1
lea eax, [eax*2 + 0x12]
mov dword [esp + 0x78], eax
cmp dword [ebx + 0x70], esi
jg 0x1006c3af
push 0
push 0
push edx
push eax
push ebx
call fcn.10025690
add esp, 0x14
mov esi, eax
jmp 0x1006c3e4
lea eax, [esi + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [ebx + 0x68]
mov ebx, dword [esp + 0x78]
mov byte [eax + ecx*4], bl
xor ebx, ebx
mov word [eax + ecx*4 + 2], bx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], ebx
mov byte [eax + ecx*4 + 1], bl
mov ebx, dword [esp + 0xd0]
mov dword [eax + ecx*4 + 4], edx
push 0x10
push dword [esp + 0x80]
push ebp
push dword [esp + 0xd8]
call fcn.10042e70
add esp, 0x10
test esi, esi
je 0x1006c424
mov edx, dword [ebx + 0x6c]
jns 0x1006c409
lea esi, [edx - 1]
mov eax, dword [ebx]
cmp byte [eax + 0x51], 0
je 0x1006c418
mov eax, 0x10095994
jmp 0x1006c421
mov eax, dword [ebx + 0x68]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
or word [edi + 0xa], 4
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
add edi, 0x30
dec edx
mov dword [esp + 0x14], edx
test edx, edx
jg 0x1006c260
mov edx, dword [esp + 0x68]
mov edi, dword [edx + 0x14]
mov ebp, dword [edx + 0xc]
mov dword [esp + 0x70], eax
test eax, eax
jg 0x1006c240
test ebp, ebp
jle 0x1006c55e
mov ebx, dword [esp + 0xdc]
lea esi, [edi + 0xc]
mov dword [esp + 0x14], esi
mov edi, 0xb
test byte [esi - 2], 6
jne 0x1006c543
movzx eax, word [esi]
test al, 0x82
setne cl
bt ax, di
setb al
test al, cl
je 0x1006c543
mov ecx, dword [esp + 0x2c]
cmp dword [esi + 8], ecx
jne 0x1006c543
cmp dword [ebx], 0
jne 0x1006c543
mov eax, dword [esi - 0xc]
push 0
push 0x83
push dword [esp + 0xec]
mov dword [esp + 0x84], eax
push dword [esp + 0xec]
push dword [esi + 0x10]
push ecx
push edx
call fcn.1006d320
mov edx, eax
add esp, 0x1c
test edx, edx
je 0x1006c543
test byte [edx + 0xa], 4
jne 0x1006c543
test byte [edx + 0xc], 1
je 0x1006c4fc
mov eax, dword [edx]
test dword [eax + 4], 0x800
je 0x1006c4fc
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
jg 0x1006c543
mov esi, dword [edx]
lea edi, [esp + 0x94]
mov eax, dword [esp + 0x78]
mov ecx, 0xd
rep movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0xc]
push 0x10
push dword [esp + 0x80]
mov dword [esp + 0xa8], eax
lea eax, [esp + 0x9c]
push eax
push dword [esp + 0xd8]
call fcn.10042e70
mov esi, dword [esp + 0x24]
add esp, 0x10
mov edi, 0xb
mov edx, dword [esp + 0x68]
dec ebp
add esi, 0x30
mov dword [esp + 0x14], esi
test ebp, ebp
jg 0x1006c472
mov ebx, dword [esp + 0xd0]
mov edi, dword [esp + 0xdc]
mov edx, dword [edi]
test edx, edx
je 0x1006c60e
mov eax, dword [ebx + 0x6c]
mov dword [edi + 0x1c], eax
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x1006c58f
push 0
push edx
push 1
push 0x46
push ebx
call fcn.10025690
add esp, 0x14
jmp 0x1006c5be
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebp, dword [esp + 0x68]
xor ebx, ebx
mov esi, dword [ebp + 0x14]
cmp dword [ebp + 0xc], ebx
jle 0x1006c60e
lea esp, [esp]
test byte [esi + 0xa], 6
jne 0x1006c605
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [edi + 0x48]
and eax, dword [edi + 0x4c]
or ecx, eax
jne 0x1006c605
push 0x10
push dword [esp + 0x80]
push dword [esi]
push dword [esp + 0xd8]
call fcn.10042e70
add esp, 0x10
or word [esi + 0xa], 4
inc ebx
add esi, 0x30
cmp ebx, dword [ebp + 0xc]
jl 0x1006c5d0
mov eax, dword [edi + 0x48]
mov edx, dword [edi + 0x4c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret