Function at 0x4695a0
Capabilities:
Check if file exists
Get file attributes
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x192c
call fcn.0046e9b0
push ebx
mov ebx, dword [esp + 0x1938]
push ebp
push esi
mov esi, dword [esp + 0x193c]
push edi
xor ebp, ebp
push 0x208
lea eax, [esp + 0x8d6]
push ebp
push eax
mov word [esp + 0x8dc], bp
call sub.msvcrt.dll_memset
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
add esp, 0xc
cmp dword [esi + 0x4c30], 2
jne 0x46960b
cmp dword [esi + 0xc24], ebp
je 0x46960b
lea ecx, [esi + 0x498]
push ecx
mov word [esi + 0x6ce], bp
call fcn.0045ccb0
jmp 0x46970e
cmp dword [esi + 0xbf0], ebp
je 0x46966b
mov eax, ebx
lea edx, [eax + 2]
jmp 0x469620
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x469620
sub eax, edx
sar eax, 1
cmp eax, 0x1ff
jl 0x46963b
mov eax, 0x1fe
lea edi, [eax + eax]
push edi
lea eax, [esi + 0x6ce]
push ebx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea edx, [esi + 0x494]
mov word [edi + esi + 0x6ce], bp
push edx
mov edi, ebx
call fcn.0045dfb0
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp dword [esi + 0xc04], ebp
je 0x46970e
push 0x104
lea ecx, [ebx + 0x414]
push str.MicrosoftWindowsWebCacheWebCacheV24.dat
lea eax, [esp + 0x8d8]
mov word [esp + 0x8d8], bp
call fcn.00460d00
add esp, 8
lea eax, [esp + 0x8d0]
push eax
call edi
cmp eax, 0xffffffff
jne 0x4696cc
push 0x104
push str.MicrosoftWindowsWebCacheWebCacheV01.dat
lea eax, [esp + 0x8d8]
lea ecx, [ebx + 0x414]
call fcn.00460d00
add esp, 8
lea ecx, [esp + 0x8d0]
push ecx
call edi
cmp eax, 0xffffffff
je 0x46970e
lea edi, [esi + 0x6ce]
mov eax, 0x1ff
lea ebx, [esp + 0x8d0]
call fcn.0045fe00
mov edx, ebx
push edx
lea eax, [esi + 0x498]
push eax
call fcn.0045d800
mov ebx, dword [esp + 0x1944]
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp dword [0x47c2f0], ebp
jne 0x46a829
cmp dword [esi + 0xbf4], ebp
je 0x469786
push 0x208
lea ecx, [esp + 0x96]
push ebp
push ecx
mov dword [esi + 0xae0], 3
mov word [esp + 0x9c], bp
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x104
push str.GoogleChromeUser_Data
lea ecx, [ebx + 0x414]
lea eax, [esp + 0x98]
call fcn.00460d00
add esp, 8
lea edx, [esp + 0x90]
push edx
call edi
cmp eax, 0xffffffff
je 0x469786
lea eax, [esp + 0x90]
push eax
push esi
call fcn.00469440
cmp dword [esi + 0xc10], ebp
je 0x4697f7
push 0x208
lea ecx, [esp + 0x96]
push ebp
push ecx
mov dword [esi + 0xae0], 8
mov word [esp + 0x9c], bp
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x104
push str.Opera_SoftwareOpera_StableHistory
lea ecx, [ebx + 0x20a]
lea eax, [esp + 0x98]
call fcn.00460d00
add esp, 8
lea edx, [esp + 0x90]
push edx
call edi
cmp eax, 0xffffffff
je 0x4697f7
push esi
lea edi, [esp + 0x94]
call fcn.00468fa0
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp dword [esi + 0xc14], ebp
je 0x469868
push 0x208
lea eax, [esp + 0x96]
push ebp
push eax
mov dword [esi + 0xae0], 9
mov word [esp + 0x9c], bp
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x104
push str.YandexYandexBrowserUser_DataDefaultHistory
lea ecx, [ebx + 0x414]
lea eax, [esp + 0x98]
call fcn.00460d00
add esp, 8
lea ecx, [esp + 0x90]
push ecx
call edi
cmp eax, 0xffffffff
je 0x469868
push esi
lea edi, [esp + 0x94]
call fcn.00468fa0
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp dword [esi + 0xc18], ebp
je 0x4698d9
push 0x208
lea edx, [esp + 0x96]
push ebp
push edx
mov dword [esi + 0xae0], 0xa
mov word [esp + 0x9c], bp
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x104
push str.VivaldiUser_DataDefaultHistory
lea ecx, [ebx + 0x414]
lea eax, [esp + 0x98]
call fcn.00460d00
add esp, 8
lea eax, [esp + 0x90]
push eax
call edi
cmp eax, 0xffffffff
je 0x4698d9
push esi
lea edi, [esp + 0x94]
call fcn.00468fa0
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp dword [esi + 0xbf8], ebp
je 0x469945
push 0x208
lea ecx, [esp + 0x96]
push ebp
push ecx
mov dword [esi + 0xae0], 6
mov word [esp + 0x9c], bp
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x104
push str.GoogleChrome_SxSUser_Data
lea ecx, [ebx + 0x414]
lea eax, [esp + 0x98]
call fcn.00460d00
add esp, 8
lea edx, [esp + 0x90]
push edx
call edi
cmp eax, 0xffffffff
je 0x469945
lea eax, [esp + 0x90]
push eax
push esi
call fcn.00469440
cmp dword [0x47c2f0], ebp
jne 0x46a829
cmp dword [esi + 0xc20], ebp
je 0x469ac1
mov edi, dword [esp + 0x1940]
push 0x208
lea ecx, [esp + 0x2a6]
push ebp
mov esi, 0xc
push ecx
mov dword [edi + 0xae0], esi
mov word [esp + 0x2ac], bp
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x1950]
add esp, 0xc
push 0x104
push str.Microsoft
add ecx, 0x414
lea eax, [esp + 0x2a8]
call fcn.00460d00
add esp, 8
lea edx, [esp + 0x2a0]
push edx
push str.Edge
lea ebx, [esp + 0xae8]
mov dword [edi + 0xae0], esi
mov dword [esp + 0xae8], 0xffffffff
mov word [esp + 0xaec], bp
mov word [esp + 0x153c], bp
mov word [esp + 0x113c], bp
call fcn.0045e8a0
mov esi, ebx
call fcn.0045e820
test eax, eax
je 0x469aa0
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test byte [esp + 0xee4], 0x10
je 0x469a8c
test dword [esp + 0xee4], 0x400
jne 0x469a8c
lea esi, [esp + 0xf10]
call fcn.0045f8d0
test eax, eax
jne 0x469a8c
push 0x208
lea eax, [esp + 0x96]
push ebp
push eax
mov word [esp + 0x9c], bp
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x104
push str.User_Data
lea eax, [esp + 0x98]
lea ecx, [esp + 0x113c]
call fcn.00460d00
add esp, 8
lea ecx, [esp + 0x90]
push ecx
call ebx
cmp eax, 0xffffffff
je 0x469a8c
lea edx, [esp + 0x90]
push edx
push edi
call fcn.00469440
lea esi, [esp + 0xae0]
call fcn.0045e820
test eax, eax
jne 0x469a0a
mov eax, dword [esp + 0xae0]
cmp eax, 0xffffffff
je 0x469ab3
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [0x47c2f0], ebp
jne 0x46a829
mov esi, edi
cmp dword [esi + 0xc00], ebp
je 0x469b28
mov ecx, dword [esp + 0x1944]
push 0x104
push str.Apple_ComputerSafariHistory.plist
add ecx, 0x20a
lea eax, [esp + 0x8d8]
mov word [esp + 0x8d8], bp
call fcn.00460d00
add esp, 8
lea edi, [esi + 0x6ce]
mov eax, 0x1ff
lea ebx, [esp + 0x8d0]
call fcn.0045fe00
mov eax, ebx
push eax
lea ecx, [esi + 0x210]
call fcn.0046baa0
cmp dword [0x47c2f0], ebp
jne 0x46a829
cmp dword [esi + 0xbfc], ebp
je 0x469f7a
mov ecx, dword [esp + 0x1940]
push 0x208
lea edx, [esp + 0x2a6]
push ebp
push edx
mov dword [ecx + 0xae0], 2
mov word [esp + 0x2ac], bp
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x208
lea eax, [esp + 0x96]
push ebp
push eax
mov word [esp + 0x9c], bp
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x208
lea ecx, [esp + 0x6c6]
push ebp
push ecx
mov word [esp + 0x6cc], bp
call sub.msvcrt.dll_memset
mov edi, dword [esp + 0x1950]
add esp, 0xc
lea esi, [edi + 0x20a]
push 0x104
push str.MozillaFirefoxProfiles
lea eax, [esp + 0x2a8]
mov ecx, esi
call fcn.00460d00
push 0x104
push str.MozillaFirefoxProfiles
lea ecx, [edi + 0x414]
lea eax, [esp + 0xa0]
call fcn.00460d00
push 0x104
push str.MozillaFirefox
lea eax, [esp + 0x6d8]
mov ecx, esi
call fcn.00460d00
add esp, 0x18
lea eax, [esp + 0x18]
call fcn.0045e7f0
lea edx, [esp + 0x2a0]
push edx
mov edi, eax
call fcn.00452ea0
lea eax, [esp + 0x90]
push eax
call fcn.00452ea0
lea eax, [esp + 0x38]
call fcn.0045e7f0
mov ecx, eax
push ecx
lea edx, [esp + 0x6c4]
push edx
call fcn.00452f50
xor esi, esi
cmp dword [esp + 0x54], ebp
jle 0x469d27
jmp 0x469c50
push 0x208
lea eax, [esp + 0x96]
push ebp
push eax
mov word [esp + 0x9c], bp
call sub.msvcrt.dll_memset
add esp, 0xc
cmp esi, ebp
jl 0x469c88
cmp esi, dword [esp + 0x54]
jge 0x469c88
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx + esi*4]
mov eax, dword [esp + 0x48]
lea ebx, [eax + edx*2]
jmp 0x469c8a
xor ebx, ebx
mov eax, 0x104
lea edi, [esp + 0x90]
call fcn.0045fe00
mov ecx, dword [esp + 0x1940]
mov eax, dword [ecx + 0x4c30]
cmp eax, 3
je 0x469cb2
cmp eax, 4
jne 0x469cef
push 1
lea ebx, [esp + 0x94]
lea edi, [esp + 0x1c]
call fcn.0045e3b0
cmp eax, 0xffffffff
jne 0x469cd3
mov edx, ebx
push edx
mov eax, edi
call fcn.0045e6c0
lea eax, [esp + 0x90]
push eax
mov eax, dword [esp + 0x1948]
add eax, 0x20a
call fcn.00468290
add esp, 4
cmp word [esp + 0x90], bp
je 0x469d1a
push 1
lea ebx, [esp + 0x94]
lea edi, [esp + 0x1c]
call fcn.0045e3b0
cmp eax, 0xffffffff
jne 0x469d1a
mov ecx, ebx
push ecx
mov eax, edi
call fcn.0045e6c0
add esi, 1
cmp esi, dword [esp + 0x54]
jl 0x469c50
mov edx, dword [esp + 0x1940]
mov eax, dword [edx + 0x4c30]
cmp eax, 2
je 0x469d42
cmp eax, 1
jne 0x469eab
mov eax, 0x20
mov dword [esp + 0x78], eax
mov dword [esp + 0x88], eax
lea eax, [esp + 0x58]
push eax
mov dword [esp + 0x74], ebp
mov dword [esp + 0x80], ebp
mov dword [esp + 0x78], ebp
mov dword [esp + 0x84], ebp
mov dword [esp + 0x90], ebp
mov dword [esp + 0x88], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebp
call fcn.00451630
lea ecx, [esp + 0x58]
push ecx
call fcn.004512d0
mov esi, eax
cmp esi, ebp
je 0x469ea2
push 0x208
lea edx, [esp + 0x6c6]
push ebp
push edx
mov word [esp + 0x6cc], bp
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x208
lea eax, [esp + 0x4b6]
push ebp
push eax
mov word [esp + 0x4bc], bp
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x208
lea ecx, [esp + 0x96]
push ebp
push ecx
mov word [esp + 0x9c], bp
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x208
lea edx, [esp + 0x2a6]
push ebp
push edx
mov word [esp + 0x2ac], bp
call sub.msvcrt.dll_memset
lea eax, [esi + 4]
add esp, 0xc
lea esi, [esp + 0x6c0]
call fcn.00460ed0
lea esi, [esp + 0x4b0]
lea eax, [esp + 0x6c0]
call fcn.00460ed0
lea esi, [esp + 0x90]
lea eax, [esp + 0x4b0]
call fcn.00460ed0
cmp word [esp + 0x90], bp
je 0x469ea2
push 0x104
push str.DataProfile
lea eax, [esp + 0x2a8]
mov ecx, esi
call fcn.00460d00
add esp, 8
lea eax, [esp + 0x2a0]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x469ea2
lea ecx, [esp + 0x2a0]
push ecx
lea eax, [esp + 0x1c]
call fcn.0045e6c0
lea esi, [esp + 0x58]
call fcn.00451370
mov esi, dword [esp + 0x34]
xor ebx, ebx
cmp esi, ebp
jle 0x469f3f
lea esp, [esp]
push 0x208
lea edx, [esp + 0x2a6]
push ebp
push edx
mov word [esp + 0x2ac], bp
call sub.msvcrt.dll_memset
add esp, 0xc
cmp ebx, ebp
jl 0x469ef6
cmp ebx, esi
jge 0x469ef6
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + ebx*4]
mov edx, dword [esp + 0x28]
lea ecx, [edx + ecx*2]
jmp 0x469ef8
xor ecx, ecx
push 0x104
push str.places.sqlite
lea eax, [esp + 0x2a8]
call fcn.00460d00
add esp, 8
lea eax, [esp + 0x2a0]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x469f38
mov ecx, dword [esp + 0x1940]
push ecx
lea edi, [esp + 0x2a4]
call fcn.00468f40
add ebx, 1
cmp ebx, esi
jl 0x469ec0
mov edx, dword [esp + 0x48]
push edx
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x48]
add esp, 4
push eax
call sub.msvcrt.dll_free
mov ecx, dword [esp + 0x2c]
add esp, 4
push ecx
call sub.msvcrt.dll_free
mov edx, dword [esp + 0x28]
add esp, 4
push edx
call sub.msvcrt.dll_free
mov esi, dword [esp + 0x1944]
add esp, 4
cmp dword [esi + 0xc08], ebp
mov ebx, 0x100
je 0x46a30a
mov eax, dword [esp + 0x1940]
push 0x208
lea ecx, [esp + 0x4b6]
push ebp
push ecx
mov dword [eax + 0xae0], 7
mov word [esp + 0x4bc], bp
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x208
lea edx, [esp + 0x6c6]
push ebp
push edx
mov word [esp + 0x6cc], bp
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x208
lea eax, [esp + 0x2a6]
push ebp
push eax
mov word [esp + 0x2ac], bp
call sub.msvcrt.dll_memset
mov esi, dword [esp + 0x1950]
add esp, 0xc
add esi, 0x20a
push 0x104
push str.MozillaSeaMonkeyProfiles
lea eax, [esp + 0x4b8]
mov ecx, esi
mov dword [esp + 0x1c], esi
call fcn.00460d00
mov ecx, dword [esp + 0x194c]
push 0x104
push str.MozillaSeaMonkeyProfiles
add ecx, 0x414
lea eax, [esp + 0x6d0]
call fcn.00460d00
push 0x104
push str.MozillaSeaMonkey
lea eax, [esp + 0x2b8]
mov ecx, esi
call fcn.00460d00
add esp, 0x18
lea ecx, [esp + 0x4b0]
mov esi, 0x400
push ecx
lea edi, [esp + 0x3c]
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], ebx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x44], ebp
call fcn.00452ea0
lea edx, [esp + 0x6c0]
push edx
call fcn.00452ea0
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x2a4]
push ecx
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x28], ebp
call fcn.00452f50
xor esi, esi
cmp dword [esp + 0x34], ebp
jle 0x46a1dc
mov edi, edi
push 0x208
lea edx, [esp + 0x96]
push ebp
push edx
mov word [esp + 0x9c], bp
call sub.msvcrt.dll_memset
add esp, 0xc
cmp esi, ebp
jl 0x46a118
cmp esi, dword [esp + 0x34]
jge 0x46a118
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + esi*4]
mov edx, dword [esp + 0x28]
lea edx, [edx + ecx*2]
jmp 0x46a11a
xor edx, edx
mov eax, edx
lea edi, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x46a120
sub eax, edi
sar eax, 1
cmp eax, 0x104
jl 0x46a13b
mov eax, 0x103
lea edi, [eax + eax]
push edi
push edx
lea eax, [esp + 0x98]
push eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x194c]
mov eax, dword [ecx + 0x4c30]
add esp, 0xc
cmp eax, 3
mov word [esp + edi + 0x90], bp
je 0x46a16f
cmp eax, 4
jne 0x46a1a4
push 1
lea ebx, [esp + 0x94]
lea edi, [esp + 0x3c]
call fcn.0045e3b0
cmp eax, 0xffffffff
jne 0x46a190
mov edx, ebx
push edx
mov eax, edi
call fcn.0045e6c0
lea eax, [esp + 0x90]
push eax
mov eax, dword [esp + 0x18]
call fcn.00468290
add esp, 4
cmp word [esp + 0x90], bp
je 0x46a1cf
push 1
lea ebx, [esp + 0x94]
lea edi, [esp + 0x3c]
call fcn.0045e3b0
cmp eax, 0xffffffff
jne 0x46a1cf
mov ecx, ebx
push ecx
mov eax, edi
call fcn.0045e6c0
add esi, 1
cmp esi, dword [esp + 0x34]
jl 0x46a0e0
mov edi, dword [esp + 0x54]
xor esi, esi
cmp edi, ebp
mov dword [esp + 0x14], esi
jle 0x46a2cf
push 0x208
lea edx, [esp + 0x96]
push ebp
push edx
mov word [esp + 0x9c], bp
call sub.msvcrt.dll_memset
add esp, 0xc
cmp esi, ebp
jl 0x46a224
cmp esi, edi
jge 0x46a224
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + esi*4]
mov edx, dword [esp + 0x48]
lea ecx, [edx + ecx*2]
jmp 0x46a226
xor ecx, ecx
push 0x104
push str.places.sqlite
lea eax, [esp + 0x98]
call fcn.00460d00
add esp, 8
lea eax, [esp + 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x46a2c0
mov esi, dword [esp + 0x1940]
lea eax, [esp + 0x90]
lea ebx, [esi + 0x6ce]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x46a270
sub eax, edx
sar eax, 1
cmp eax, 0x1ff
jl 0x46a28b
mov eax, 0x1fe
lea edi, [eax + eax]
push edi
lea ecx, [esp + 0x94]
push ecx
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea edx, [esp + 0x90]
push edx
add esi, 0x284
push esi
mov word [edi + ebx], bp
call fcn.00452c00
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x54]
add esi, 1
cmp esi, edi
mov dword [esp + 0x14], esi
jl 0x46a1ee
mov eax, dword [esp + 0x28]
push eax
call sub.msvcrt.dll_free
mov ecx, dword [esp + 0x28]
add esp, 4
push ecx
call sub.msvcrt.dll_free
mov edx, dword [esp + 0x4c]
add esp, 4
push edx
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x48]
add esp, 4
push eax
call sub.msvcrt.dll_free
mov esi, dword [esp + 0x1944]
add esp, 4
cmp dword [esi + 0xc0c], ebp
je 0x46a68f
mov ecx, dword [esp + 0x1940]
push 0x208
lea edx, [esp + 0x4b6]
push ebp
push edx
mov dword [ecx + 0xae0], 0xd
mov word [esp + 0x4bc], bp
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x208
lea eax, [esp + 0x6c6]
push ebp
push eax
mov word [esp + 0x6cc], bp
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x208
lea ecx, [esp + 0x2a6]
push ebp
push ecx
mov word [esp + 0x2ac], bp
call sub.msvcrt.dll_memset
mov edi, dword [esp + 0x1950]
add esp, 0xc
lea esi, [edi + 0x20a]
push 0x104
push str.WaterfoxProfiles
lea eax, [esp + 0x4b8]
mov ecx, esi
call fcn.00460d00
push 0x104
push str.WaterfoxProfiles
lea ecx, [edi + 0x414]
lea eax, [esp + 0x6d0]
call fcn.00460d00
push 0x104
push 0x46f9dc
lea eax, [esp + 0x2b8]
mov ecx, esi
call fcn.00460d00
add esp, 0x18
lea edx, [esp + 0x4b0]
mov ebx, 0x400
mov esi, 0x100
push edx
lea edi, [esp + 0x3c]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], esi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x44], ebp
call fcn.00452ea0
lea eax, [esp + 0x6c0]
push eax
call fcn.00452ea0
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x2a4]
push edx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x28], ebp
call fcn.00452f50
mov edi, dword [esp + 0x34]
xor esi, esi
cmp edi, ebp
jle 0x46a568
push 0x208
lea eax, [esp + 0x96]
push ebp
push eax
mov word [esp + 0x9c], bp
call sub.msvcrt.dll_memset
add esp, 0xc
cmp esi, ebp
jl 0x46a49b
cmp esi, edi
jge 0x46a49b
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + esi*4]
mov eax, dword [esp + 0x28]
lea edx, [eax + edx*2]
jmp 0x46a49d
xor edx, edx
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x46a4a2
sub eax, edi
sar eax, 1
cmp eax, 0x104
jl 0x46a4bd
mov eax, 0x103
lea edi, [eax + eax]
push edi
push edx
lea ecx, [esp + 0x98]
push ecx
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x194c]
mov eax, dword [edx + 0x4c30]
add esp, 0xc
cmp eax, 3
mov word [esp + edi + 0x90], bp
je 0x46a4f1
cmp eax, 4
jne 0x46a52e
push 1
lea ebx, [esp + 0x94]
lea edi, [esp + 0x3c]
call fcn.0045e3b0
cmp eax, 0xffffffff
jne 0x46a512
mov eax, ebx
push eax
mov eax, edi
call fcn.0045e6c0
mov eax, dword [esp + 0x1944]
lea ecx, [esp + 0x90]
push ecx
add eax, 0x20a
call fcn.00468290
add esp, 4
cmp word [esp + 0x90], bp
je 0x46a559
push 1
lea ebx, [esp + 0x94]
lea edi, [esp + 0x3c]
call fcn.0045e3b0
cmp eax, 0xffffffff
jne 0x46a559
mov edx, ebx
push edx
mov eax, edi
call fcn.0045e6c0
mov edi, dword [esp + 0x34]
add esi, 1
cmp esi, edi
jl 0x46a465
mov edi, dword [esp + 0x54]
xor esi, esi
cmp edi, ebp
mov dword [esp + 0x14], esi
jle 0x46a654
push 0x208
lea eax, [esp + 0x96]
push ebp
push eax
mov word [esp + 0x9c], bp
call sub.msvcrt.dll_memset
add esp, 0xc
cmp esi, ebp
jl 0x46a5b0
cmp esi, edi
jge 0x46a5b0
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx + esi*4]
mov eax, dword [esp + 0x48]
lea ecx, [eax + edx*2]
jmp 0x46a5b2
xor ecx, ecx
push 0x104
push str.places.sqlite
lea eax, [esp + 0x98]
call fcn.00460d00
add esp, 8
lea ecx, [esp + 0x90]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x46a645
mov esi, dword [esp + 0x1940]
lea eax, [esp + 0x90]
lea ebx, [esi + 0x6ce]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x46a5f5
sub eax, edx
sar eax, 1
cmp eax, 0x1ff
jl 0x46a610
mov eax, 0x1fe
lea edi, [eax + eax]
push edi
lea edx, [esp + 0x94]
push edx
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x90]
push eax
add esi, 0x284
push esi
mov word [edi + ebx], bp
call fcn.00452c00
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x14]
add esi, 1
cmp esi, edi
mov dword [esp + 0x14], esi
jl 0x46a57a
mov ecx, dword [esp + 0x28]
push ecx
call sub.msvcrt.dll_free
mov edx, dword [esp + 0x28]
add esp, 4
push edx
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x4c]
add esp, 4
push eax
call sub.msvcrt.dll_free
mov ecx, dword [esp + 0x48]
add esp, 4
push ecx
call sub.msvcrt.dll_free
mov esi, dword [esp + 0x1944]
add esp, 4
cmp dword [esi + 0xc1c], ebp
je 0x46a829
mov edx, dword [esp + 0x1940]
push 0x208
lea eax, [esp + 0x4b6]
push ebp
push eax
mov dword [edx + 0xae0], 0xb
mov word [esp + 0x4bc], bp
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x1950]
add esp, 0xc
push 0x104
push str.Moonchild_ProductionsPale_MoonProfiles
add ecx, 0x20a
lea eax, [esp + 0x4b8]
call fcn.00460d00
add esp, 8
lea ecx, [esp + 0x4b0]
push ecx
lea edi, [esp + 0x1c]
mov dword [esp + 0x30], 0x400
mov dword [esp + 0x34], 0x100
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x24], ebp
call fcn.00452ea0
mov edi, dword [esp + 0x34]
xor esi, esi
cmp edi, ebp
jle 0x46a80f
push 0x208
lea edx, [esp + 0x96]
push ebp
push edx
mov word [esp + 0x9c], bp
call sub.msvcrt.dll_memset
add esp, 0xc
cmp esi, ebp
jl 0x46a76d
cmp esi, edi
jge 0x46a76d
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + esi*4]
mov edx, dword [esp + 0x28]
lea ecx, [edx + ecx*2]
jmp 0x46a76f
xor ecx, ecx
push 0x104
push str.places.sqlite
lea eax, [esp + 0x98]
call fcn.00460d00
add esp, 8
lea eax, [esp + 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x46a804
mov ebx, dword [esp + 0x1940]
lea eax, [esp + 0x90]
add ebx, 0x6ce
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x46a7b2
sub eax, edx
sar eax, 1
cmp eax, 0x1ff
jl 0x46a7cd
mov eax, 0x1fe
lea edi, [eax + eax]
push edi
lea ecx, [esp + 0x94]
push ecx
push ebx
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x194c]
add esp, 0xc
lea edx, [esp + 0x90]
push edx
add eax, 0x284
push eax
mov word [edi + ebx], bp
call fcn.00452c00
mov edi, dword [esp + 0x34]
add esi, 1
cmp esi, edi
jl 0x46a737
mov ecx, dword [esp + 0x28]
push ecx
call sub.msvcrt.dll_free
mov edx, dword [esp + 0x28]
add esp, 4
push edx
call sub.msvcrt.dll_free
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x192c
ret 8