Function at 0x404120
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x20
mov eax, dword [0x4eef3c]
xor eax, esp
mov dword [esp + 0x1c], eax
push esi
mov esi, ecx
mov dword [esp + 0x1c], 0xf
xor ecx, ecx
mov dword [esp + 0x18], 0
push edi
mov eax, 0xe
mov byte [esp + 0xc], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 0
mov dword [esi + 0x58], 0
cmp byte [str.adobe_caps.dll], cl
cmove eax, ecx
lea ecx, [esp + 0xc]
push eax
push str.adobe_caps.dll
call fcn.004031a0
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [esi + 0x4c], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x4041b1
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0x16
push str.pcdOpenSessionNoCreate
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
test ecx, ecx
jne 0x4041e7
xor eax, eax
jmp 0x4041f9
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov dword [esi], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x404213
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0xf
push str.pcdCloseSession
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
jne 0x404243
xor eax, eax
jmp 0x404255
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov dword [esi + 4], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x404270
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0x1a
push str.pcdGetDomainDataSubdomains
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
jne 0x4042a0
xor eax, eax
jmp 0x4042b2
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x4042cd
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0x14
push str.pcdGetDomainDataKeys
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
jne 0x4042fd
xor eax, eax
jmp 0x40430f
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x40432a
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0x10
push str.pcdGetDomainData
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
jne 0x40435a
xor eax, eax
jmp 0x40436c
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x404387
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0x10
push str.pcdSetDomainData
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
jne 0x4043b7
xor eax, eax
jmp 0x4043c9
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x4043e4
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0x13
push str.pcdRemoveDomainData
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
jne 0x404414
xor eax, eax
jmp 0x404426
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x404441
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0xf
push str.capsOpenSession
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
jne 0x404471
xor eax, eax
jmp 0x404483
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x40449e
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0x10
push str.capsCloseSession
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
jne 0x4044ce
xor eax, eax
jmp 0x4044e0
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x4044fb
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0x19
push str.capsGetCollectionPayloads
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
jne 0x40452b
xor eax, eax
jmp 0x40453d
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x404558
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0x16
push str.capsGetPayloadDataKeys
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
jne 0x404588
xor eax, eax
jmp 0x40459a
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x4045b5
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0x12
push str.capsGetPayloadData
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
jne 0x4045e5
xor eax, eax
jmp 0x4045f7
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x404612
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0xf
push str.capsGetPayloads
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
jne 0x404642
xor eax, eax
jmp 0x404654
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x40466f
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0x12
push str.capsGetLastModTime
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
jne 0x40469f
xor eax, eax
jmp 0x4046b1
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov dword [esi + 0x34], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x4046cc
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0x11
push str.pcdGetLastModTime
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
jne 0x4046fc
xor eax, eax
jmp 0x40470e
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x404729
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0xe
push str.pdbOpenSession
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
jne 0x404759
xor eax, eax
jmp 0x40476b
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov dword [esi + 0x3c], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x404786
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0x16
push str.pdbOpenSessionNoCreate
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
jne 0x4047b6
xor eax, eax
jmp 0x4047c8
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x4047e3
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0xf
push str.pdbCloseSession
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
jne 0x404813
xor eax, eax
jmp 0x404825
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov dword [esi + 0x44], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jb 0x404840
inc eax
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x10]
call fcn.00403650
push 0x13
push str.pdbGetAppLaunchPath
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
call fcn.004031a0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
jne 0x404870
xor eax, eax
jmp 0x404882
cmp dword [esp + 0x20], 0x10
lea eax, [esp + 0xc]
cmovae eax, dword [esp + 0xc]
push eax
push ecx
call edi
mov ecx, dword [esp + 0x20]
mov dword [esi + 0x48], eax
cmp ecx, 0x10
jb 0x40489d
inc ecx
push ecx
push dword [esp + 0x10]
lea ecx, [esp + 0x14]
call fcn.00403650
mov ecx, dword [esp + 0x24]
mov eax, esi
pop edi
pop esi
xor ecx, esp
call fcn.00488c1c
mov esp, ebp
pop ebp
ret