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

Disassembly:
sub esp, 0xb4
push ebx
push ebp
push esi
push edi
push 0x4a9158
call fcn.0044ed40
push 0x10000
call fcn.00441a20
mov ebp, eax
mov eax, dword [0x4a9228]
add esp, 8
test eax, eax
mov dword [esp + 0xa4], ebp
mov dword [esp + 0x60], 0
je 0x415484
push eax
call fcn.00441a60
add esp, 4
mov ecx, dword [0x4aa570]
mov eax, ecx
cmp byte [eax], 0
je 0x415499
add eax, 1
cmp byte [eax], 0
jne 0x415491
push 0
sub eax, ecx
push 1
push eax
push ecx
call fcn.00476070
mov dword [0x4a9228], eax
call fcn.004304f0
fstp qword [esp + 0xcc]
push str.db::save_n
call fcn.00430350
mov eax, dword [0x4a920c]
add esp, 0x14
test eax, eax
je 0x415e6a
push 0
push 0x44
call fcn.00435900
add esp, 8
cmp byte [0x4aa764], 0
je 0x4154eb
call fcn.0042fd10
mov ecx, dword [0x4a9228]
mov eax, ecx
cmp byte [eax], 0
je 0x415500
add eax, 1
cmp byte [eax], 0
jne 0x4154f8
push 0
push 1
push 0x11
sub eax, ecx
push str.Everything.db.tmp
push eax
push ecx
call fcn.004761b0
push 1
push 0
push 2
mov edi, eax
push 0x40000000
push edi
call fcn.004443d0
push edi
mov esi, eax
call fcn.00441a60
add esp, 0x30
cmp esi, 0xffffffff
je 0x415e5e
push 0x10000
lea ecx, [esp + 0x6c]
push ebp
push ecx
call fcn.00402d10
add esp, 0xc
test eax, eax
je 0x415e49
mov eax, dword [0x4a91d8]
add eax, eax
add eax, eax
push eax
call fcn.00441a20
mov edx, dword [0x4a91c0]
xor edi, edi
add esp, 4
test edx, edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], edi
mov ecx, eax
je 0x4155c1
mov edi, edi
mov eax, dword [edx + 8]
mov ebx, dword [edx + 0xc]
lea eax, [eax + edx + 0x10]
lea ebx, [eax + ebx*4]
cmp eax, ebx
mov dword [esp + 0x10], ebx
jae 0x4155b7
mov ebx, dword [eax]
mov ebx, dword [ebx + 9]
mov dword [ecx], ebx
mov ebx, dword [eax]
mov dword [ebx + 9], edi
mov ebx, dword [eax]
movzx ebx, byte [ebx + 0xd]
add eax, 4
add ecx, 4
cmp eax, dword [esp + 0x10]
lea edi, [edi + ebx + 0xe]
jb 0x415595
mov edx, dword [edx]
test edx, edx
jne 0x415580
mov dword [esp + 0x64], edi
mov ecx, dword [0x4a91f8]
xor ebx, ebx
test ecx, ecx
je 0x4155fe
lea ecx, [ecx]
mov edx, dword [ecx + 8]
lea eax, [edx + ecx + 0x10]
mov edx, dword [ecx + 0xc]
lea edx, [eax + edx*4]
cmp eax, edx
mov dword [esp + 0x20], edx
jae 0x4155f8
mov edx, dword [eax]
movzx edx, byte [edx + 4]
add eax, 4
cmp eax, dword [esp + 0x20]
lea ebx, [ebx + edx + 5]
jb 0x4155e5
mov ecx, dword [ecx]
test ecx, ecx
jne 0x4155d0
cmp dword [0x4a9128], 0
mov dword [esp + 0x10], 0
je 0x415617
mov dword [esp + 0x10], 2
cmp dword [0x4a9150], 0
je 0x415625
or dword [esp + 0x10], 4
push 4
lea eax, [esp + 0x50]
push eax
push 0x10000
push ebp
lea ecx, [esp + 0x78]
push ecx
push esi
mov dword [esp + 0x64], 0x42445a45
call fcn.00402c10
add esp, 0x18
test eax, eax
jne 0x41565d
push 0
push 0x47
call fcn.00435900
add esp, 8
jmp 0x415de8
push 4
lea edx, [esp + 0x5c]
push edx
push 0x10000
push ebp
lea eax, [esp + 0x78]
push eax
push esi
mov dword [esp + 0x70], 0x1060006
call fcn.00402c10
add esp, 0x18
test eax, eax
jne 0x415694
push eax
push 0x47
call fcn.00435900
add esp, 8
jmp 0x415de8
mov ecx, dword [esp + 0x10]
push 4
lea edx, [esp + 0x28]
push edx
push 0x10000
push ebp
lea eax, [esp + 0x78]
push eax
push esi
mov dword [esp + 0x3c], ecx
call fcn.00402c10
add esp, 0x18
test eax, eax
jne 0x4156cb
push eax
push 0x47
call fcn.00435900
add esp, 8
jmp 0x415de8
mov ecx, dword [0x4a91d8]
push 4
lea edx, [esp + 0x24]
push edx
push 0x10000
push ebp
lea eax, [esp + 0x78]
push eax
push esi
mov dword [esp + 0x38], ecx
call fcn.00402c10
add esp, 0x18
test eax, eax
jne 0x415704
push eax
push 0x47
call fcn.00435900
add esp, 8
jmp 0x415de8
mov ecx, dword [0x4a9200]
push 4
lea edx, [esp + 0x14]
push edx
push 0x10000
push ebp
lea eax, [esp + 0x78]
push eax
push esi
mov dword [esp + 0x28], ecx
call fcn.00402c10
add esp, 0x18
test eax, eax
jne 0x41573d
push eax
push 0x47
call fcn.00435900
add esp, 8
jmp 0x415de8
push 4
lea ecx, [esp + 0x48]
push ecx
push 0x10000
push ebp
lea edx, [esp + 0x78]
push edx
push esi
mov dword [esp + 0x5c], edi
call fcn.00402c10
add esp, 0x18
test eax, eax
jne 0x415770
push eax
push 0x47
call fcn.00435900
add esp, 8
jmp 0x415de8
push 4
lea eax, [esp + 0x30]
push eax
push 0x10000
push ebp
lea ecx, [esp + 0x78]
push ecx
push esi
mov dword [esp + 0x44], ebx
call fcn.00402c10
add esp, 0x18
test eax, eax
jne 0x4157a3
push eax
push 0x47
call fcn.00435900
add esp, 8
jmp 0x415de8
xor edi, edi
jmp 0x4157b0
mov edx, dword [0x4a9220]
cmp byte [edi + edx], 0
push 1
lea ecx, [esp + 0x6c]
je 0x41588c
lea eax, [esp + 0x3c]
push eax
push 0x10000
push ebp
push ecx
push esi
mov byte [esp + 0x50], 1
call fcn.00402c10
add esp, 0x18
test eax, eax
je 0x41564c
mov edx, dword [0x4a9220]
mov eax, dword [edi + edx + 4]
push 4
lea ecx, [esp + 0x2c]
push ecx
push 0x10000
push ebp
lea edx, [esp + 0x78]
push edx
push esi
mov dword [esp + 0x40], eax
call fcn.00402c10
add esp, 0x18
test eax, eax
je 0x41564c
mov eax, dword [0x4a9220]
mov ecx, dword [edi + eax + 8]
mov dword [esp + 0xac], ecx
mov edx, dword [edi + eax + 0xc]
push 8
lea eax, [esp + 0xb0]
push eax
push 0x10000
push ebp
lea ecx, [esp + 0x78]
push ecx
push esi
mov dword [esp + 0xc8], edx
call fcn.00402c10
add esp, 0x18
test eax, eax
je 0x41564c
mov eax, dword [0x4a9220]
mov edx, dword [edi + eax + 0x10]
push 8
lea ecx, [esp + 0xb8]
push ecx
push 0x10000
mov dword [esp + 0xc0], edx
mov eax, dword [edi + eax + 0x14]
push ebp
lea edx, [esp + 0x78]
mov dword [esp + 0xc8], eax
push edx
jmp 0x41589d
lea eax, [esp + 0x38]
push eax
push 0x10000
push ebp
mov byte [esp + 0x44], 0
push ecx
push esi
call fcn.00402c10
add esp, 0x18
test eax, eax
je 0x41564c
add edi, 0x19
cmp edi, 0x28a
jl 0x4157b0
mov edx, dword [0x4a9230]
push 4
lea eax, [esp + 0x1c]
push eax
push 0x10000
push ebp
lea ecx, [esp + 0x78]
push ecx
push esi
mov dword [esp + 0x30], edx
call fcn.00402c10
add esp, 0x18
test eax, eax
jne 0x4158f6
push eax
push 0x47
call fcn.00435900
add esp, 8
jmp 0x415de8
xor ebx, ebx
cmp dword [0x4a9230], ebx
jle 0x4159ad
xor edi, edi
jmp 0x415910
mov edx, dword [0x4a922c]
mov al, byte [edi + edx]
push 1
lea ecx, [esp + 0x58]
push ecx
push 0x10000
push ebp
lea edx, [esp + 0x78]
push edx
push esi
mov byte [esp + 0x6c], al
call fcn.00402c10
add esp, 0x18
test eax, eax
je 0x41564c
mov eax, dword [0x4a922c]
mov ecx, dword [edi + eax + 5]
push 4
lea edx, [esp + 0x18]
push edx
push 0x10000
push ebp
lea eax, [esp + 0x78]
push eax
push esi
mov dword [esp + 0x2c], ecx
call fcn.00402c10
add esp, 0x18
test eax, eax
je 0x41564c
mov eax, dword [0x4a922c]
mov ecx, dword [edi + eax + 5]
mov eax, dword [edi + eax + 1]
push ecx
push eax
push 0x10000
push ebp
lea ecx, [esp + 0x78]
push ecx
push esi
call fcn.00402c10
add esp, 0x18
test eax, eax
je 0x41564c
add ebx, 1
add edi, 9
cmp ebx, dword [0x4a9230]
jl 0x415910
mov edx, dword [esp + 0x5c]
mov ecx, dword [0x4a91c0]
mov eax, dword [0x4a91d0]
mov dword [esp + 0x20], edx
xor edx, edx
cmp ecx, edx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x58], edx
je 0x415c17
mov edx, dword [ecx + 8]
mov edi, dword [ecx + 0xc]
lea edx, [edx + ecx + 0x10]
lea edi, [edx + edi*4]
cmp edx, edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], edi
jae 0x415c09
nop
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x28], ecx
jne 0x415a25
mov edx, dword [eax + 8]
lea ecx, [edx + eax + 0x10]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x28], ecx
lea ecx, [ecx + edx*4]
mov edx, dword [eax]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
movzx ebx, byte [eax + 0xd]
mov ecx, dword [esp + 0x44]
cmp ebx, ecx
mov edi, dword [esp + 0x2c]
lea edx, [eax + 0xe]
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x44], ebx
mov edx, ebx
jl 0x415a4e
mov edx, ecx
xor eax, eax
test edx, edx
mov dword [esp + 0x14], edx
jle 0x415a73
mov edx, dword [esp + 0x18]
mov dl, byte [edx]
cmp dl, byte [edi]
jne 0x415a73
add dword [esp + 0x18], 1
add eax, 1
add edi, 1
cmp eax, dword [esp + 0x14]
jl 0x415a58
mov edi, dword [esp + 0x1c]
sub ecx, eax
push 1
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x34]
push ecx
push 0x10000
sub ebx, eax
mov eax, dword [edi]
mov al, byte [eax]
push ebp
lea edx, [esp + 0x78]
push edx
push esi
mov byte [esp + 0x48], al
call fcn.00402c10
add esp, 0x18
test eax, eax
je 0x41564c
mov eax, dword [edi]
mov ecx, dword [eax + 1]
mov dword [esp + 0x98], ecx
mov edx, dword [eax + 5]
push 8
lea eax, [esp + 0x9c]
push eax
push 0x10000
push ebp
lea ecx, [esp + 0x78]
push ecx
push esi
mov dword [esp + 0xb4], edx
call fcn.00402c10
add esp, 0x18
test eax, eax
je 0x41564c
mov edx, dword [esp + 0x20]
mov eax, dword [edx]
test eax, eax
je 0x415af9
mov eax, dword [eax + 9]
mov dword [esp + 0x1c], eax
jmp 0x415b01
mov dword [esp + 0x1c], 0xffffffff
push 4
lea ecx, [esp + 0x20]
push ecx
push 0x10000
push ebp
lea edx, [esp + 0x78]
push edx
push esi
call fcn.00402c10
add esp, 0x18
test eax, eax
je 0x41564c
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov edx, dword [eax + 9]
mov ecx, dword [esp + 0x64]
add edx, 4
cmp edx, ecx
jae 0x415db1
mov eax, dword [eax + 9]
push 4
lea ecx, [esp + 0xac]
push ecx
push 0x10000
push ebp
lea edx, [esp + 0x78]
push edx
push esi
mov dword [esp + 0xc0], eax
call fcn.00402c10
add esp, 0x18
test eax, eax
je 0x41564c
push 1
lea eax, [esp + 0x44]
push eax
push 0x10000
push ebp
lea ecx, [esp + 0x78]
push ecx
push esi
mov byte [esp + 0x58], bl
call fcn.00402c10
add esp, 0x18
test eax, eax
je 0x41564c
test ebx, ebx
je 0x415be4
mov dl, byte [esp + 0x14]
push 1
lea eax, [esp + 0x54]
push eax
push 0x10000
push ebp
lea ecx, [esp + 0x78]
push ecx
push esi
mov byte [esp + 0x68], dl
call fcn.00402c10
add esp, 0x18
test eax, eax
je 0x41564c
mov edx, dword [esp + 0x18]
push ebx
push edx
push 0x10000
push ebp
lea eax, [esp + 0x78]
push eax
push esi
call fcn.00402c10
add esp, 0x18
test eax, eax
je 0x41564c
mov eax, 4
add dword [esp + 0x20], eax
add dword [esp + 0x28], eax
add edi, eax
cmp edi, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1c], edi
jb 0x415a00
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
test ecx, ecx
mov dword [esp + 0x4c], ecx
jne 0x4159e2
mov eax, dword [0x4a91f8]
xor ecx, ecx
cmp eax, ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x2c], ecx
je 0x415d8c
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
lea ecx, [ecx + eax + 0x10]
lea edx, [ecx + edx*4]
cmp ecx, edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
jae 0x415d7e
nop
mov eax, dword [esp + 0x1c]
mov edi, dword [eax]
mov ecx, dword [esp + 0x2c]
movzx ebx, byte [edi + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x44]
cmp ebx, ecx
lea eax, [edi + 5]
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x44], ebx
mov edx, ebx
jl 0x415c7d
mov edx, ecx
xor eax, eax
test edx, edx
mov dword [esp + 0x14], edx
jle 0x415cb3
mov ebp, dword [esp + 0x24]
jmp 0x415c90
mov edx, dword [esp + 0x18]
mov dl, byte [edx]
cmp dl, byte [ebp]
jne 0x415cac
add dword [esp + 0x18], 1
add eax, 1
add ebp, 1
cmp eax, dword [esp + 0x14]
jl 0x415c90
mov ebp, dword [esp + 0xa4]
push 4
sub ecx, eax
lea edx, [esp + 0xa4]
push edx
sub ebx, eax
mov eax, dword [edi]
push 0x10000
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 9]
push ebp
lea eax, [esp + 0x78]
push eax
push esi
mov dword [esp + 0xb8], ecx
call fcn.00402c10
add esp, 0x18
test eax, eax
je 0x41564c
push 1
lea ecx, [esp + 0x40]
push ecx
push 0x10000
push ebp
lea edx, [esp + 0x78]
push edx
push esi
mov byte [esp + 0x54], bl
call fcn.00402c10
add esp, 0x18
test eax, eax
je 0x41564c
test ebx, ebx
je 0x415d65
mov al, byte [esp + 0x14]
push 1
lea ecx, [esp + 0x4c]
push ecx
push 0x10000
push ebp
lea edx, [esp + 0x78]
push edx
push esi
mov byte [esp + 0x60], al
call fcn.00402c10
add esp, 0x18
test eax, eax
je 0x41564c
mov eax, dword [esp + 0x18]
push ebx
push eax
push 0x10000
push ebp
lea ecx, [esp + 0x78]
push ecx
push esi
call fcn.00402c10
add esp, 0x18
test eax, eax
je 0x41564c
mov eax, dword [esp + 0x1c]
add eax, 4
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
jb 0x415c50
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x4c], eax
jne 0x415c32
push 0x10000
push ebp
lea edx, [esp + 0x70]
push edx
push esi
call fcn.00402aa0
add esp, 0x10
test eax, eax
jne 0x415de0
push eax
push 0x47
call fcn.00435900
add esp, 8
jmp 0x415de8
push ecx
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
push edx
push str.if___d__4____d_:_Invalid_folder_offset._n
push str.db::save
push 0x13f5
push str.._srcdb.cpp
call fcn.00430960
push 0
push 0x48
call fcn.00435900
add esp, 0x20
jmp 0x415de8
mov dword [esp + 0x60], 1
mov edx, dword [0x4a91c0]
test edx, edx
mov ecx, dword [esp + 0x5c]
je 0x415e29
mov eax, dword [edx + 8]
mov edi, dword [edx + 0xc]
lea eax, [eax + edx + 0x10]
lea edi, [eax + edi*4]
cmp eax, edi
mov dword [esp + 0x10], edi
jae 0x415e23
jmp 0x415e10
mov edi, dword [eax]
mov ebx, dword [ecx]
add eax, 4
add ecx, 4
cmp eax, dword [esp + 0x10]
mov dword [edi + 9], ebx
jb 0x415e10
mov edx, dword [edx]
test edx, edx
jne 0x415df6
mov ecx, dword [esp + 0x5c]
push ecx
call fcn.00441a60
lea edx, [esp + 0x6c]
push edx
call fcn.00402da0
add esp, 8
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x415e6a
push 0
push 0x47
call fcn.00435900
add esp, 8
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x415e6a
push 0
push 0x46
call fcn.00435900
add esp, 8
call fcn.004304f0
fstp qword [esp + 0x98]
push str.saved_db:
call fcn.00430350
fld qword [esp + 0x9c]
fsub qword [esp + 0xc0]
push ecx
fstp qword [esp]
push str._f_seconds_n
push 0xff0000ff
call fcn.00430400
add esp, 0x10
cmp dword [esp + 0x60], 0
je 0x415f52
mov ecx, dword [0x4a9228]
xor ebx, ebx
mov eax, ecx
cmp byte [eax], bl
je 0x415ec8
lea ecx, [ecx]
add eax, 1
cmp byte [eax], 0
jne 0x415ec0
push 0
push 1
push 0xd
sub eax, ecx
push str.Everything.db.tmp
push eax
push ecx
call fcn.004761b0
mov ecx, dword [0x4a9228]
mov edi, eax
mov eax, ecx
add esp, 0x18
cmp byte [eax], 0
je 0x415ef8
mov edi, edi
add eax, 1
cmp byte [eax], 0
jne 0x415ef0
push 0
push 1
push 0x11
sub eax, ecx
push str.Everything.db.tmp
push eax
push ecx
call fcn.004761b0
push 0
push 1
mov esi, eax
push edi
push esi
call fcn.00444480
add esp, 0x28
test eax, eax
je 0x415f27
mov ebx, 1
jmp 0x415f33
push 0
push 0x49
call fcn.00435900
add esp, 8
push esi
call fcn.00441a60
push edi
call fcn.00441a60
add esp, 8
test ebx, ebx
je 0x415f52
push 0
push 0x45
call fcn.00435900
add esp, 8
push ebp
call fcn.00441a60
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret