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

Disassembly:
sub esp, 0x4c
mov eax, dword [esp + 0x60]
push ebx
mov ebx, dword [esp + 0x54]
mov ecx, dword [ebx]
push ebp
push esi
mov esi, dword [esp + 0x60]
push edi
mov dword [esp + 0x2c], eax
inc eax
lea edi, [eax + 1]
mov dword [esp + 0x44], edi
mov dword [esp + 0x34], edi
inc edi
mov dword [esp + 0x18], edi
inc edi
mov dword [esp + 0x40], edi
inc edi
mov dword [esp + 0x54], edi
inc edi
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0x48]
mov dword [esp + 0x4c], edi
inc edi
cmp eax, edi
mov dword [esp + 0x28], ecx
mov byte [esp + 0x13], 1
mov dword [esp + 0x70], edi
jg 0x454664
mov eax, edi
mov ebp, dword [ebx + 8]
mov dword [ebx + 0x48], eax
test ebp, ebp
jne 0x4546ac
call fcn.0043c740
mov ebp, eax
mov dword [ebx + 8], eax
test ebp, ebp
je 0x45468f
push 0x99
mov esi, ebp
call fcn.0043c930
mov esi, dword [esp + 0x68]
add esp, 4
cmp dword [ebx + 0x198], 0
jne 0x4546a4
mov edx, dword [ebx]
test byte [edx + 0x3c], 8
jne 0x4546a4
mov byte [ebx + 0x17], 1
test ebp, ebp
je 0x454da8
test esi, esi
je 0x454da8
cmp dword [esi + 0x20], 0
je 0x454da8
mov ebx, dword [esi]
push 7
push str.sqlite_
push ebx
call fcn.00423390
add esp, 0xc
test eax, eax
je 0x454da8
mov eax, dword [esp + 0x64]
mov esi, dword [eax + 0x44]
mov ecx, dword [esp + 0x28]
call fcn.0046b9c0
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x30], eax
shl eax, 4
mov eax, dword [eax + edx]
push eax
mov eax, dword [esp + 0x64]
push 0
push ebx
push 0x1c
call fcn.004562d0
add esp, 0x10
test eax, eax
jne 0x454da8
mov eax, dword [esp + 0x64]
mov ecx, dword [eax]
mov edx, dword [eax + 0x20]
mov esi, dword [esp + 0x60]
mov ebx, dword [esp + 0x30]
push ecx
push 0
push edx
mov eax, esi
call fcn.00456360
mov eax, dword [esp + 0x80]
mov ecx, dword [esi + 0x44]
mov dword [esp + 0x5c], eax
inc eax
mov dword [esp + 0x28], eax
inc eax
add esp, 0xc
cmp ecx, eax
jle 0x45474c
mov eax, ecx
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x64]
mov ecx, esi
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0x30]
push 0x36
push eax
push edx
push ecx
mov eax, ebx
call fcn.004635c0
mov eax, dword [ebx]
mov ecx, dword [esp + 0x50]
push 0
push eax
push 0
push ecx
push 0
push 0x61
mov esi, ebp
call fcn.0043ca30
mov ebx, dword [ebx + 8]
add esp, 0x28
mov dword [esp + 0x20], ebx
test ebx, ebx
je 0x454cf9
mov eax, dword [esp + 0x68]
test eax, eax
je 0x4547a2
cmp eax, ebx
jne 0x454cea
cmp dword [ebx + 0x24], 0
jne 0x4547ad
mov byte [esp + 0x13], 0
mov eax, dword [esp + 0x64]
test byte [eax + 0x2c], 0x20
je 0x4547ce
mov edx, dword [ebx + 0x38]
and dl, 3
cmp dl, 2
jne 0x4547ce
movzx ecx, word [ebx + 0x32]
mov eax, dword [eax]
mov dword [esp + 0x38], ecx
jmp 0x4547e2
test byte [ebx + 0x38], 8
movzx ecx, word [ebx + 0x34]
mov eax, dword [ebx]
mov dword [esp + 0x38], ecx
je 0x4547e2
movzx ecx, word [ebx + 0x32]
push 0
push eax
mov eax, dword [esp + 0x5c]
push 0
push eax
dec ecx
push 0
push 0x61
mov esi, ebp
mov dword [esp + 0x2c], ecx
call fcn.0043ca30
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x78]
mov eax, dword [edx + 0x48]
add edi, ecx
add esp, 0x18
cmp eax, edi
jg 0x454812
mov eax, edi
mov edi, edx
mov edx, dword [esp + 0x1c]
mov dword [edi + 0x48], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [ebx + 0x2c]
push eax
push ecx
push edx
push 0x36
mov esi, ebp
call fcn.0043c8d0
mov ecx, ebx
mov eax, edi
call fcn.0043d1a0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x48]
push eax
push ecx
push 0x19
call fcn.0043c9d0
mov edi, dword [esp + 0x58]
movzx eax, word [ebx + 0x32]
add esp, 0x1c
lea edx, [edi + 2]
push edx
push eax
push 0x19
call fcn.0043c9d0
mov ecx, dword [esp + 0x50]
add esp, 0xc
push edi
push ecx
push 0
push 1
call fcn.0043c8d0
mov ecx, dword [ebp + 4]
mov edx, dword [ebp]
add esp, 0x10
test ecx, ecx
je 0x4548a7
cmp byte [edx + 0x40], 0
jne 0x4548a7
mov eax, dword [ebp + 0x20]
dec eax
lea eax, [eax + eax*4]
lea esi, [ecx + eax*4]
movsx eax, byte [esi + 1]
mov ecx, dword [esi + 0x10]
call fcn.0043cf00
mov dword [esi + 0x10], 0x4cff64
mov byte [esi + 1], 0xfb
jmp 0x4548b6
mov ecx, 0x4cff64
mov eax, 0xfffffffb
call fcn.0043cf00
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x4548c8
mov eax, dword [ebp + 0x20]
lea edx, [eax + eax*4]
mov byte [ecx + edx*4 - 0x11], 2
mov eax, dword [esp + 0x1c]
push eax
push 0x6c
mov esi, ebp
call fcn.0043c980
mov ecx, dword [esp + 0x3c]
push ecx
push 0
push 0x19
mov dword [esp + 0x6c], eax
call fcn.0043c9d0
mov edx, dword [ebp + 0x20]
add esp, 0x14
cmp dword [esp + 0x14], 0
mov dword [esp + 0x38], edx
jle 0x454b18
mov eax, ebp
call fcn.0043cc20
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov ebx, eax
lea eax, [edi*4]
push 0
push eax
mov dword [esp + 0x50], ebx
call fcn.00420d90
add esp, 8
mov dword [esp + 0x24], eax
test eax, eax
je 0x454ce2
push 0x10
mov esi, ebp
call fcn.0043c930
mov ecx, dword [ebp + 0x20]
add esp, 4
mov dword [esp + 0x38], ecx
cmp edi, 1
jne 0x454968
mov eax, dword [esp + 0x20]
cmp word [eax + 0x32], di
jne 0x454968
cmp byte [eax + 0x36], 0
je 0x454968
mov edx, dword [esp + 0x70]
push ebx
push edx
push 0x4d
call fcn.0043c9d0
add esp, 0xc
xor ebx, ebx
test edi, edi
jle 0x4549e8
mov edi, edi
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x20]
mov esi, dword [ecx + ebx*4]
mov edi, dword [esp + 0x60]
call fcn.004580c0
mov edx, dword [esp + 0x34]
push edx
push ebx
push 0x19
mov esi, ebp
mov edi, eax
call fcn.0043c9d0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
add esp, 0xc
push eax
push ebx
push ecx
push 0x2f
call fcn.0043c8d0
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x28]
push 0xfffffffffffffffc
push edi
lea eax, [ebx + edx]
push eax
push 0
push ecx
push 0x4e
call fcn.0043ca30
mov edx, dword [esp + 0x4c]
mov dword [edx + ebx*4], eax
mov eax, dword [ebp + 4]
add esp, 0x28
test eax, eax
je 0x4549e1
mov ecx, dword [ebp + 0x20]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4 - 0x11], 0x80
inc ebx
cmp ebx, dword [esp + 0x14]
jl 0x454970
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x14]
push edx
push edi
push 0x19
mov esi, ebp
call fcn.0043c9d0
mov eax, dword [esp + 0x54]
add esp, 0xc
push eax
push 0
push 0x10
call fcn.0043c9d0
mov eax, dword [esp + 0x44]
mov ecx, dword [ebp + 0x20]
dec eax
add esp, 0xc
cmp ecx, eax
jbe 0x454a25
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
mov dword [eax + edx*4 + 8], ecx
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x18]
dec ecx
xor esi, esi
mov dword [edx + 0x58], ecx
test edi, edi
jle 0x454aaf
mov ebx, dword [esp + 0x70]
lea esp, [esp]
mov eax, dword [esp + 0x24]
mov eax, dword [eax + esi*4]
mov ecx, dword [ebp + 0x20]
cmp ecx, eax
jbe 0x454a58
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
mov dword [eax + edx*4 + 8], ecx
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x18]
dec ecx
mov dword [edx + 0x58], ecx
mov edi, dword [ebp + 0x20]
mov eax, dword [ebp + 0x18]
cmp dword [eax + 0x54], edi
jg 0x454a7a
push ebp
call fcn.0043c840
add esp, 4
test eax, eax
jne 0x454aa8
mov edx, dword [ebp + 4]
inc dword [ebp + 0x20]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x1c]
lea edx, [esi + ebx]
mov byte [eax], 0x2f
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], 0
mov byte [eax + 1], 0
inc esi
cmp esi, dword [esp + 0x14]
jl 0x454a40
mov esi, dword [esp + 0x24]
mov ecx, dword [ebp + 0x18]
or eax, 0xffffffff
sub eax, dword [esp + 0x48]
js 0x454acc
mov edx, dword [ecx + 0x70]
test edx, edx
je 0x454acc
mov edi, dword [ebp + 0x20]
mov dword [edx + eax*4], edi
mov eax, dword [ebp + 0x20]
dec eax
mov dword [ecx + 0x58], eax
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0x208], 0
je 0x454ae9
mov eax, esi
call fcn.00420ae0
jmp 0x454b18
cmp esi, dword [ecx + 0x114]
jb 0x454b0f
cmp esi, dword [ecx + 0x118]
jae 0x454b0f
mov edx, dword [ecx + 0x110]
mov dword [esi], edx
dec dword [ecx + 0xfc]
mov dword [ecx + 0x110], esi
jmp 0x454b18
push esi
call fcn.00420a40
add esp, 4
mov esi, dword [ebp + 0x20]
mov eax, dword [ebp + 0x18]
cmp dword [eax + 0x54], esi
jg 0x454b30
push ebp
call fcn.0043c840
add esp, 4
test eax, eax
jne 0x454b63
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x18]
mov ecx, 1
add dword [ebp + 0x20], ecx
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov byte [eax], cl
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x3c]
xor edi, edi
mov byte [eax + 3], 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0
jmp 0x454b69
mov ebx, dword [esp + 0x18]
xor edi, edi
mov ecx, dword [ebp + 4]
mov edx, dword [ebp]
cmp ecx, edi
je 0x454b9c
cmp byte [edx + 0x40], 0
jne 0x454b9c
mov eax, dword [ebp + 0x20]
dec eax
lea eax, [eax + eax*4]
lea esi, [ecx + eax*4]
movsx eax, byte [esi + 1]
mov ecx, dword [esi + 0x10]
call fcn.0043cf00
mov dword [esi + 0x10], 0x4cffec
mov byte [esi + 1], 0xfb
jmp 0x454bab
mov ecx, 0x4cffec
mov eax, 0xfffffffb
call fcn.0043cf00
mov ecx, dword [ebp + 4]
cmp ecx, edi
je 0x454bbd
mov eax, dword [ebp + 0x20]
lea edx, [eax + eax*4]
mov byte [ecx + edx*4 - 0x11], 2
mov esi, dword [ebp + 0x20]
mov eax, dword [ebp + 0x18]
cmp dword [eax + 0x54], esi
jg 0x454bd5
push ebp
call fcn.0043c840
add esp, 4
test eax, eax
jne 0x454c00
mov edx, dword [ebp + 4]
inc dword [ebp + 0x20]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
mov byte [eax], 9
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x3c]
push eax
push ecx
mov eax, ebp
call fcn.00454570
mov edx, dword [esp + 0x48]
push edi
push 0x4d7f10
push ebx
push 3
push edx
push 0x31
mov esi, ebp
call fcn.0043ca30
mov esi, dword [ebp + 0x20]
mov eax, dword [ebp + 0x18]
add esp, 0x20
cmp dword [eax + 0x54], esi
jg 0x454c43
push ebp
call fcn.0043c840
add esp, 4
test eax, eax
jne 0x454c6e
mov edx, dword [ebp + 4]
inc dword [ebp + 0x20]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x2c]
mov byte [eax], 0x4a
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0
mov esi, dword [ebp + 0x20]
mov eax, dword [ebp + 0x18]
cmp dword [eax + 0x54], esi
jg 0x454c86
push ebp
call fcn.0043c840
add esp, 4
test eax, eax
jne 0x454cb1
mov edx, dword [ebp + 4]
inc dword [ebp + 0x20]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x2c]
mov byte [eax], 0x4b
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0
mov ecx, dword [ebp + 4]
cmp ecx, edi
je 0x454cc3
mov eax, dword [ebp + 0x20]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 8
mov eax, dword [ebp + 0x20]
mov ecx, dword [esp + 0x58]
cmp eax, ecx
jbe 0x454cd8
mov edx, dword [ebp + 4]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x18]
dec eax
mov dword [ecx + 0x58], eax
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x70]
mov ebx, dword [ebx + 0x14]
mov dword [esp + 0x20], ebx
test ebx, ebx
jne 0x454792
cmp dword [esp + 0x68], 0
jne 0x454da8
cmp byte [esp + 0x13], 0
je 0x454da8
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
push edi
push edx
push 0x32
mov esi, ebp
call fcn.0043c9d0
add esp, 0xc
push edi
push 0x2e
call fcn.0043c980
mov edi, eax
mov eax, dword [esp + 0x5c]
push eax
push 0
push 0x1c
call fcn.0043c9d0
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x54]
add esp, 0x14
push 0
push 0x4d7f10
push ecx
push 3
push edx
push 0x31
call fcn.0043ca30
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x84]
push eax
push ebx
push 0x4a
call fcn.0043c9d0
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x3c]
add esp, 0x24
push ecx
push edx
push ebx
push 0x4b
call fcn.0043c8d0
mov eax, dword [ebp + 4]
add esp, 0x10
test eax, eax
je 0x454d98
mov ecx, dword [ebp + 0x20]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4 - 0x11], 8
mov eax, edi
mov edx, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
jmp fcn.0043cee0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret