Function at 0x45a880
Capabilities:
Access peb ldr_data
Check if file exists
Reference sql statements

Disassembly:
push 0xffffffffffffffff
push 0x482ba9
mov eax, dword fs:[0]
push eax
sub esp, 0xc8
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a0fe0]
xor eax, esp
push eax
lea eax, [esp + 0xdc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x3c], esi
mov eax, dword [0x4a5a34]
mov edx, dword [eax + 0xc]
xor ebp, ebp
mov ecx, 0x4a5a34
mov dword [esp + 0xe4], ebp
call edx
add eax, 0x10
mov dword [esp + 0x34], eax
mov eax, dword [0x4a5a34]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a5a34
mov byte [esp + 0xe4], 1
call edx
add eax, 0x10
mov dword [esp + 0x2c], eax
mov eax, dword [0x4a5a34]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a5a34
mov byte [esp + 0xe4], 2
call edx
add eax, 0x10
mov dword [esp + 0x24], eax
mov eax, dword [0x4a5a34]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a5a34
mov byte [esp + 0xe4], 3
call edx
add eax, 0x10
mov dword [esp + 0x30], eax
lea ecx, [esp + 0x44]
mov byte [esp + 0xe4], 4
call fcn.004496b0
push str.ProductImage
add esi, 0x290
lea eax, [esp + 0x1c]
push esi
push eax
mov byte [esp + 0xf0], 5
mov dword [esp + 0x20], ebp
mov dword [esp + 0x34], ebp
call fcn.00457f10
push 0x498464
push eax
lea ecx, [esp + 0x34]
mov bl, 6
push ecx
mov byte [esp + 0xfc], bl
call fcn.00457f10
add esp, 0x18
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0xe8], 7
call fcn.0044c620
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0xe4], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45a9b8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0xe4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45a9e0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 4
call fcn.004648f3
add esp, 4
mov dword [esp + 0x38], eax
cmp eax, ebp
mov byte [esp + 0xe4], 8
je 0x45aa09
mov ecx, eax
call fcn.00401000
mov esi, eax
mov dword [esp + 0x20], esi
jmp 0x45aa0f
mov dword [esp + 0x20], ebp
mov esi, ebp
cmp esi, ebp
mov byte [esp + 0xe4], 5
je 0x45ad0d
mov ecx, dword [esp + 0xec]
push ecx
mov ecx, esi
call fcn.00401020
test al, al
je 0x45acf6
push str.ProductList
push str.ImageLinkURL
push str.ProductNo
lea edx, [esp + 0x40]
push str.SELECT__s__s_FROM__s_WHERE_ImageLinkURL_IS_NOT_NULL
push edx
call fcn.00448fb0
mov eax, dword [esp + 0x48]
add esp, 0x14
push eax
mov ecx, esi
call fcn.00401060
mov ebx, eax
cmp ebx, ebp
je 0x45acf6
mov ecx, ebx
call fcn.00401190
test al, al
je 0x45ace6
mov edx, dword [0x4a5a34]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a5a34
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
push str.ProductNo
mov ecx, ebx
mov byte [esp + 0xe8], 9
call fcn.00401250
cmp eax, ebp
jne 0x45aaaf
xor ecx, ecx
jmp 0x45aac3
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, bp
jne 0x45aab4
sub ecx, esi
sar ecx, 1
push ecx
push eax
lea ecx, [esp + 0x34]
call fcn.0044c790
push str.ImageLinkURL
mov ecx, ebx
call fcn.00401250
cmp eax, ebp
jne 0x45aae2
xor ecx, ecx
jmp 0x45aaf6
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, bp
jne 0x45aae7
sub ecx, esi
sar ecx, 1
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.0044c790
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x40]
push eax
call fcn.0044c550
add esp, 0xc
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0xe8], 0xa
call fcn.0044c620
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0xe4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45ab52
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x5c]
mov dword [esp + 0x58], ecx
call dword [0x4a23c0]
mov edi, dword [esp + 0x18]
push eax
push edi
lea ecx, [esp + 0x60]
call fcn.00455040
mov edx, dword [esp + 0x58]
push edx
call dword [sym.imp.dbghelp.dll_MakeSureDirectoryPathExists]
mov eax, dword [esp + 0x58]
lea ecx, [esp + 0x5c]
cmp eax, ecx
je 0x45ab8f
push eax
call fcn.0046d1a5
add esp, 4
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x45abb7
lea eax, [edi - 0x10]
mov byte [esp + 0xe4], 5
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x45acc7
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x18]
push edx
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x4c], esp
mov esi, esp
push eax
call fcn.0044c830
add eax, 0x10
add esp, 4
lea ecx, [esp + 0x50]
mov dword [esi], eax
call fcn.0044b630
test al, al
je 0x45ac85
cmp dword [esp + 0x14], ebp
je 0x45acaf
lea eax, [esp + 0x1c]
push eax
push ebp
push ebp
mov dword [esp + 0x28], ebp
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
cmp eax, ebp
jne 0x45ac71
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x45ac85
mov edx, dword [esp + 0x28]
mov ecx, dword [eax]
push ebp
push edx
mov edx, dword [esp + 0x1c]
push edx
push eax
mov eax, dword [ecx + 0x10]
call eax
cmp eax, ebp
jne 0x45ac71
mov ecx, dword [esp + 0x1c]
push ebp
push ecx
call fcn.00453e40
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x45ac71
mov eax, dword [esi + 8]
cmp eax, ebp
mov dword [esi + 8], ebp
jne 0x45ac67
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
push ebp
lea edx, [esp + 0x1c]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x4c]
call fcn.00458d90
mov edi, dword [esp + 0x18]
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x45ac85
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x14]
cmp eax, ebp
je 0x45acaf
mov esi, dword [sym.imp.KERNEL32.dll_GlobalHandle]
push eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [esp + 0x14]
push eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [esp + 0x14], ebp
lea eax, [edi - 0x10]
mov byte [esp + 0xe4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45acd3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, ebx
call fcn.00401190
test al, al
jne 0x45aa7c
mov esi, dword [esp + 0x20]
mov ecx, ebx
call fcn.00401180
push ebx
call fcn.00464923
add esp, 4
mov ecx, esi
call fcn.00401040
mov ecx, esi
call fcn.00401010
push esi
call fcn.00464923
add esp, 4
mov eax, dword [esp + 0x14]
cmp eax, ebp
je 0x45ad37
mov esi, dword [sym.imp.KERNEL32.dll_GlobalHandle]
push eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov ecx, dword [esp + 0x14]
push ecx
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [esp + 0x14], ebp
lea ecx, [esp + 0x44]
mov byte [esp + 0xe4], 4
call fcn.00449710
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0xe4], 3
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45ad70
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0xe4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45ad98
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0xe4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45adc0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0xe4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45ade8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xec]
add eax, 0xfffffff0
mov dword [esp + 0xe4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45ae16
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
mov ecx, dword [esp + 0xdc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret 4