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

Disassembly:
sub esp, 0x78
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax]
mov eax, dword [ecx]
push ebx
push ebp
push esi
xor esi, esi
cmp word [esp + 0x98], si
push edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
je 0x10059d3b
test byte [eax + 0x3c], 0x80
je 0x10059d3b
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov edx, dword [esp + 0x90]
movzx eax, word [edx]
cmp ax, 0x3f
mov dword [esp + 0x44], eax
ja 0x10059d31
movzx ecx, ax
mov eax, 1
xor edx, edx
mov byte [esp + 0x17], 1
mov dword [esp + 0x20], ecx
call fcn.100a2900
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x30], esi
lea esp, [esp]
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x64]
ja 0x1005a32e
jb 0x10059dae
mov ecx, dword [esp + 0x48]
cmp ecx, dword [esp + 0x60]
jae 0x1005a32e
movzx eax, word [esp + 0x9c]
mov ecx, dword [esp + 0x30]
cmp ecx, eax
jg 0x1005a32e
test ecx, ecx
jle 0x10059dd8
mov edx, dword [esp + 0x1c]
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xc]
or dword [esp + 0x50], esi
or dword [esp + 0x54], edx
cmp ecx, eax
jge 0x10059deb
mov eax, dword [esp + 0x94]
mov edx, dword [eax + 0x18]
mov edx, dword [edx + ecx*4]
jmp 0x10059df2
mov edx, dword [esp + 0xa0]
test dword [edx + 0x24], 0x400
mov dword [esp + 0x1c], edx
jne 0x1005a328
movzx eax, byte [edx + 0x10]
mov ecx, dword [esp + 0x8c]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
shl eax, 4
mov eax, dword [eax + ecx + 0x38]
xor ecx, ecx
cmp dword [esp + 0x20], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], ecx
jle 0x10059f4e
mov dword [esp + 0x28], ecx
mov eax, 1
xor edx, edx
call fcn.100a2900
mov ebp, edx
mov ebx, eax
and eax, dword [esp + 0x48]
mov ecx, ebp
and ecx, dword [esp + 0x4c]
or eax, ecx
jne 0x10059f30
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + edx]
call fcn.10013040
mov edi, eax
cmp byte [edi], 0x9a
jne 0x10059f30
mov ecx, dword [esp + 0x34]
cmp dword [edi + 0x1c], ecx
jne 0x10059f30
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
movsx ecx, word [edi + 0x20]
push 0
not eax
not edx
push eax
push edx
mov edx, dword [esp + 0x98]
push ecx
mov ecx, dword [esp + 0x44]
add edx, 0x148
mov eax, 0x82
call fcn.10056e50
mov esi, eax
add esp, 0x10
test esi, esi
je 0x10059f30
test byte [esi + 0x12], 2
je 0x10059f28
cmp word [edi + 0x20], 0
jl 0x10059f28
mov edx, dword [esp + 0x90]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x8c]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + eax]
push edx
call fcn.1004e5b0
add esp, 4
test eax, eax
jne 0x10059ef7
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 8]
mov edi, dword [eax]
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax]
push ecx
mov ecx, dword [esi]
call fcn.1004e5b0
add esp, 4
test eax, eax
jne 0x10059f18
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 8]
mov eax, dword [eax]
push eax
push edi
call sym.SQLite.Interop.dll_sqlite3_stricmp
add esp, 8
test eax, eax
jne 0x10059f30
or dword [esp + 0x48], ebx
or dword [esp + 0x4c], ebp
mov ecx, dword [esp + 0x24]
add dword [esp + 0x28], 0x18
add ecx, 1
cmp ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
jl 0x10059e33
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x24]
test eax, 0x1000
jne 0x1005a205
test eax, 0x100
je 0x10059f72
xor edi, edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x3c], edi
lea eax, [edi + 1]
jmp 0x10059fa6
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x1c]
test ecx, ecx
mov dword [esp + 0x24], ecx
je 0x10059d31
test byte [ecx + 0x38], 4
jne 0x10059d31
movzx edx, word [ecx + 0x32]
cmp byte [ecx + 0x36], 0
movzx eax, word [ecx + 0x34]
mov dword [esp + 0x3c], edx
setne byte [esp + 0x17]
mov edi, ecx
movzx esi, ax
xor edx, edx
test esi, esi
mov byte [esp + 0x1a], 0
mov byte [esp + 0x19], 0
mov byte [esp + 0x1b], 0
mov dword [esp + 0x2c], edx
mov dword [esp + 0x40], esi
jle 0x1005a205
lea ebx, [ebx]
mov eax, dword [esp + 0x1c]
movzx ecx, word [eax + 0x18]
cmp edx, ecx
jge 0x1005a003
cmp word [eax + 0x1a], 0
jne 0x1005a003
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + edx*4]
movzx eax, word [eax + 0x12]
test al, 0x82
je 0x1005a003
test al, al
jns 0x1005a1f1
mov byte [esp + 0x17], 0
jmp 0x1005a1f1
test edi, edi
je 0x1005a029
mov eax, dword [edi + 4]
movsx esi, word [eax + edx*2]
mov eax, dword [edi + 0x1c]
mov al, byte [edx + eax]
mov byte [esp + 0x18], al
mov eax, dword [edi + 0xc]
movsx eax, word [eax + 0x24]
cmp esi, eax
mov dword [esp + 0x28], esi
jne 0x1005a035
jmp 0x1005a02e
mov byte [esp + 0x18], 0
or esi, 0xffffffff
mov dword [esp + 0x28], esi
cmp byte [esp + 0x17], 0
je 0x1005a059
test esi, esi
jl 0x1005a059
cmp edx, ecx
jl 0x1005a059
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + 4]
lea edx, [esi + esi*2]
cmp byte [eax + edx*8 + 0x14], 0
jne 0x1005a059
mov byte [esp + 0x17], 0
mov ebp, dword [esp + 0x90]
xor esi, esi
mov bl, 1
xor edi, edi
cmp esi, dword [esp + 0x20]
jge 0x1005a13a
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.100a2900
and eax, dword [esp + 0x48]
and edx, dword [esp + 0x4c]
or eax, edx
jne 0x1005a12c
mov ecx, dword [ebp + 4]
mov ecx, dword [edi + ecx]
mov eax, ecx
test eax, eax
je 0x1005a0c4
lea ebx, [ebx]
mov edx, dword [eax + 4]
test edx, 0x1000
je 0x1005a0c4
test edx, 0x40000
je 0x1005a0bd
mov edx, dword [eax + 0x14]
mov eax, dword [edx + 4]
mov eax, dword [eax]
jmp 0x1005a0c0
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x1005a0a0
test dword [esp + 0x98], 0x300
jne 0x1005a0d3
xor bl, bl
cmp byte [eax], 0x9a
jne 0x1005a12c
mov edx, dword [esp + 0x34]
cmp dword [eax + 0x1c], edx
jne 0x1005a12c
movsx edx, word [eax + 0x20]
mov eax, dword [esp + 0x28]
cmp edx, eax
jne 0x1005a12c
test eax, eax
jl 0x1005a165
mov eax, dword [esp + 0x8c]
mov edx, dword [eax]
push edx
call fcn.1004e5b0
add esp, 4
test eax, eax
jne 0x1005a10e
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x20]
mov ecx, dword [esp + 0x2c]
mov edx, dword [edx + ecx*4]
mov eax, dword [eax]
push edx
push eax
call sym.SQLite.Interop.dll_sqlite3_stricmp
add esp, 8
test eax, eax
je 0x1005a165
add esi, 1
add edi, 0x18
test bl, bl
jne 0x1005a066
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x1005a14b
movzx ecx, word [esp + 0x3c]
cmp eax, ecx
jge 0x1005a150
mov byte [esp + 0x17], 0
cmp byte [esp + 0x1b], 0
je 0x1005a205
mov byte [esp + 0x17], 1
jmp 0x1005a210
mov ecx, dword [esp + 0x8c]
test word [ecx + 0x22], 0x100
jne 0x1005a1c3
cmp byte [esp + 0x1a], 0
lea edx, [esi + esi*2]
je 0x1005a191
mov al, byte [esp + 0x18]
xor al, byte [esp + 0x19]
mov ecx, dword [ebp + 4]
cmp al, byte [ecx + edx*8 + 0xc]
jne 0x1005a13a
jmp 0x1005a1c3
mov eax, dword [ebp + 4]
mov al, byte [eax + edx*8 + 0xc]
xor al, byte [esp + 0x18]
mov byte [esp + 0x19], al
je 0x1005a1be
mov ecx, dword [esp + 0x30]
mov eax, 1
xor edx, edx
call fcn.100a2900
mov ecx, dword [esp + 0xa4]
or dword [ecx], eax
or dword [ecx + 4], edx
mov byte [esp + 0x1a], 1
cmp dword [esp + 0x28], 0
jge 0x1005a1cf
mov byte [esp + 0x1b], 1
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.100a2900
or dword [esp + 0x48], eax
or dword [esp + 0x4c], edx
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x40]
add edx, 1
cmp edx, esi
mov dword [esp + 0x2c], edx
jl 0x10059fd0
jmp 0x1005a150
cmp byte [esp + 0x17], 0
je 0x1005a316
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
or dword [esp + 0x58], edx
or dword [esp + 0x5c], eax
xor ecx, ecx
cmp dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
jle 0x1005a316
mov dword [esp + 0x34], ecx
mov eax, 1
xor edx, edx
call fcn.100a2900
mov ecx, edx
mov ebx, eax
and eax, dword [esp + 0x48]
mov dword [esp + 0x6c], ecx
and ecx, dword [esp + 0x4c]
or eax, ecx
jne 0x1005a2fc
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x34]
mov esi, dword [eax + edx]
mov ecx, dword [esp + 0x8c]
add ecx, 0x44
push esi
push ecx
call fcn.10019890
mov edi, eax
mov ebp, edx
mov edx, edi
add esp, 8
or edx, ebp
jne 0x1005a2dc
xor eax, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
lea eax, [esp + 0x70]
push esi
push eax
mov dword [esp + 0x8c], 1
mov dword [esp + 0x78], 0x10012ea0
mov dword [esp + 0x7c], 0x10012e80
call fcn.10020080
add esp, 8
cmp dword [esp + 0x84], 0
je 0x1005a2fc
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
not eax
not ecx
and eax, edi
and ecx, ebp
or eax, ecx
jne 0x1005a2fc
mov ecx, dword [esp + 0x6c]
or dword [esp + 0x48], ebx
or dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x24]
add dword [esp + 0x34], 0x18
add ecx, 1
cmp ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
jl 0x1005a236
add dword [esp + 0x30], 1
cmp byte [esp + 0x17], 0
jne 0x10059d90
jmp 0x1005a32e
cmp byte [edx + 0x1d], 0
jne 0x1005a342
mov edx, dword [esp + 0x60]
cmp dword [esp + 0x48], edx
jne 0x1005a34e
mov eax, dword [esp + 0x64]
cmp dword [esp + 0x4c], eax
jne 0x1005a34e
mov al, byte [esp + 0x44]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
cmp byte [esp + 0x17], 0
jne 0x1005a3ab
mov ebx, dword [esp + 0x20]
add ebx, 0xffffffff
test ebx, ebx
jle 0x10059d31
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.100a2900
add eax, 0xffffffff
adc edx, 0xffffffff
mov ecx, eax
mov esi, edx
and ecx, edi
and esi, ebp
cmp ecx, eax
jne 0x1005a390
cmp esi, edx
je 0x1005a3a1
sub ebx, 1
test ebx, ebx
jg 0x1005a36c
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
pop edi
pop esi
pop ebp
or al, 0xff
pop ebx
add esp, 0x78
ret