Function at 0x4508c0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59786b
mov eax, dword fs:[0]
push eax
sub esp, 0x29c
mov eax, dword [0x610684]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x210], ecx
push 0x48
lea eax, [ebp - 0x208]
push 0
push eax
call fcn.0054aa90
add esp, 0xc
lea ecx, [ebp - 0x208]
call fcn.0044ac30
push 0x5d88d8
push 1
push 0
mov dword [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
mov dword [ebp - 0x28], 0xf
mov dword [ebp - 0x2c], 0
mov byte [ebp - 0x3c], 0
mov byte [ebp - 4], 1
test esi, esi
je 0x451223
push esi
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov edi, eax
test edi, edi
je 0x450977
push esi
push 0
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LockResource]
test eax, eax
je 0x450977
push esi
push eax
lea ecx, [ebp - 0x3c]
call fcn.0044f570
cmp dword [ebp - 0x2c], 0
je 0x451223
cmp dword [ebp - 0x28], 0x10
lea eax, [ebp - 0x3c]
push 1
cmovae eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0x208]
push 0
push eax
call fcn.0044d5b0
mov esi, dword [ebp - 0x1f0]
test esi, esi
je 0x4509bc
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
test eax, eax
jne 0x450a59
mov esi, dword [esi + 0x28]
test esi, esi
jne 0x4509a6
push str.Failed_to_parse_the_product_info_XML
push 0
push 5
push str.AdobeGCClientMain
push dword [0x618bf4]
call fcn.004b11f0
add esp, 0x14
mov eax, dword [ebp - 0x210]
lea ecx, [ebp - 0x24]
lea ebx, [eax + 0xbc]
xorps xmm0, xmm0
movq qword [ebp - 0x24], xmm0
push dword [eax + 0xc0]
push dword [ebx]
call fcn.00454c20
mov byte [ebp - 4], 0xc
push dword [ebp - 0x218]
mov edi, dword [ebp - 0x24]
push ebx
push dword [ebx + 4]
push dword [ebx]
mov esi, dword [edi]
call fcn.00455990
mov eax, dword [ebx]
add esp, 0x10
mov byte [ebp - 0x214], 0
mov ecx, ebx
mov dword [ebx + 4], eax
push dword [ebp - 0x214]
push edi
push esi
call fcn.004556c0
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x24]
push eax
push dword [eax]
lea eax, [ebp - 0x218]
push eax
call fcn.00452f00
push dword [ebp - 0x24]
call fcn.0051122d
add esp, 4
jmp 0x451246
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
test eax, eax
je 0x4509bc
push str.leid
mov ecx, eax
call fcn.00449780
mov ebx, eax
test ebx, ebx
je 0x4509d8
mov edi, dword [ebp - 0x210]
add edi, 0xbc
mov dword [ebp - 0x214], edi
mov dword [ebp - 0x104], 0xf
mov dword [ebp - 0x108], 0
mov byte [ebp - 0x118], 0
mov dword [ebp - 0xec], 0xf
mov dword [ebp - 0xf0], 0
mov byte [ebp - 0x100], 0
mov dword [ebp - 0xd4], 0xf
mov dword [ebp - 0xd8], 0
mov byte [ebp - 0xe8], 0
mov byte [ebp - 4], 2
mov ecx, ebx
mov eax, dword [ebx]
call dword [eax + 0x18]
push str.version
lea ecx, [eax + 0x2c]
call fcn.0044bcb0
test eax, eax
je 0x450b3c
mov eax, dword [eax + 0x18]
add eax, 8
je 0x450b3c
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x18]
push str.version
lea ecx, [eax + 0x2c]
call fcn.0044bcb0
test eax, eax
je 0x450b25
mov edx, dword [eax + 0x18]
add edx, 8
jmp 0x450b27
xor edx, edx
cmp byte [edx], 0
je 0x450b41
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x450b31
sub ecx, esi
jmp 0x450b43
mov edx, 0x5d7b58
xor ecx, ecx
push ecx
push edx
lea ecx, [ebp - 0x100]
call fcn.0044f570
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x18]
push 0x5d867c
lea ecx, [eax + 0x2c]
call fcn.0044bcb0
test eax, eax
je 0x450bab
mov eax, dword [eax + 0x18]
add eax, 8
je 0x450bab
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x18]
push 0x5d867c
lea ecx, [eax + 0x2c]
call fcn.0044bcb0
test eax, eax
je 0x450b90
mov edx, dword [eax + 0x18]
add edx, 8
jmp 0x450b92
xor edx, edx
cmp byte [edx], 0
je 0x450bb0
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x450ba0
sub ecx, esi
jmp 0x450bb2
mov edx, 0x5d7b58
xor ecx, ecx
push ecx
push edx
lea ecx, [ebp - 0x118]
call fcn.0044f570
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x18]
push str.adobeCode
lea ecx, [eax + 0x2c]
call fcn.0044bcb0
test eax, eax
je 0x450c03
mov eax, dword [eax + 0x18]
add eax, 8
je 0x450c03
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x18]
push str.adobeCode
lea ecx, [eax + 0x2c]
call fcn.0044bcb0
test eax, eax
je 0x450bff
mov edx, dword [eax + 0x18]
add edx, 8
jmp 0x450c08
xor edx, edx
jmp 0x450c08
mov edx, 0x5d7b58
mov dword [ebp - 0x40], 0xf
mov dword [ebp - 0x44], 0
mov byte [ebp - 0x54], 0
cmp byte [edx], 0
jne 0x450c23
xor ecx, ecx
jmp 0x450c31
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x450c28
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x54]
call fcn.0044f570
lea eax, [ebp - 0x118]
mov byte [ebp - 4], 3
push eax
mov ecx, edi
call fcn.00452490
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x18]
mov edx, dword [eax + 0x18]
test edx, edx
je 0x4511ba
mov edx, dword [edx + 0x20]
add edx, 8
mov dword [ebp - 0x58], 0xf
mov dword [ebp - 0x5c], 0
mov byte [ebp - 0x6c], 0
cmp byte [edx], 0
jne 0x450c80
xor ecx, ecx
jmp 0x450c8e
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x450c85
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x6c]
call fcn.0044f570
cmp dword [ebp - 0x5c], 0
je 0x4511a1
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
sub esp, 0x18
mov byte [ebp - 4], 5
mov ecx, esp
mov dword [ebp - 0x20c], esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
cmp dword [ecx + 0x14], 0x10
mov dword [ecx + 0x10], 0
jb 0x450cfb
mov eax, dword [ecx]
jmp 0x450cfd
mov eax, ecx
mov byte [eax], 0
xor eax, eax
cmp byte [0x5d868c], al
setne al
push eax
push 0x5d868c
call fcn.0044f570
sub esp, 0x18
mov byte [ebp - 4], 6
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
cmp dword [ecx + 0x14], 0x10
mov dword [ecx + 0x10], 0
jb 0x450d45
mov eax, dword [ecx]
jmp 0x450d47
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp - 0x6c]
push 0
push eax
call fcn.0044f670
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 5
call fcn.0045deb0
push 0x48
lea eax, [ebp - 0x1c0]
push 0
push eax
call fcn.0054aa90
add esp, 0x3c
mov dword [ebp - 0x1ac], 0xf
mov dword [ebp - 0x1b0], 0
mov byte [ebp - 0x1c0], 0
mov dword [ebp - 0x194], 0xf
mov dword [ebp - 0x198], 0
mov byte [ebp - 0x1a8], 0
mov dword [ebp - 0x17c], 0xf
mov dword [ebp - 0x180], 0
mov byte [ebp - 0x190], 0
mov dword [ebp - 0x164], 0xf
mov dword [ebp - 0x168], 0
mov byte [ebp - 0x178], 0
mov dword [ebp - 0x14c], 0xf
mov dword [ebp - 0x150], 0
mov byte [ebp - 0x160], 0
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 7
push eax
lea edx, [ebp - 0x6c]
lea ecx, [ebp - 0x148]
call fcn.00454ab0
add esp, 4
push eax
lea edx, [ebp - 0x118]
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x2a8]
call fcn.00454b50
add esp, 4
lea ecx, [ebp - 0x1c0]
mov esi, eax
push esi
call fcn.004528b0
lea eax, [esi + 0x48]
push eax
lea ecx, [ebp - 0x178]
call fcn.004529d0
lea ecx, [ebp - 0x260]
call fcn.00451360
lea ecx, [ebp - 0x2a8]
call fcn.004512a0
lea ecx, [ebp - 0x148]
mov byte [ebp - 4], 7
call fcn.00451360
mov ecx, dword [ebp - 0x210]
mov esi, dword [ecx + 0xb4]
mov eax, esi
mov dword [ebp - 0x20c], eax
mov edi, dword [esi + 4]
cmp byte [edi + 0xd], 0
jne 0x450ebe
nop
lea eax, [ebp - 0x118]
push eax
lea ecx, [edi + 0x10]
call fcn.0044fe90
test al, al
je 0x450eae
mov edi, dword [edi + 8]
mov eax, dword [ebp - 0x20c]
jmp 0x450eb8
mov eax, edi
mov edi, dword [edi]
mov dword [ebp - 0x20c], eax
cmp byte [edi + 0xd], 0
je 0x450e90
cmp eax, esi
je 0x450edb
add eax, 0x10
lea ecx, [ebp - 0x118]
push eax
call fcn.0044fe90
test al, al
jne 0x450edb
mov esi, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x210]
cmp esi, dword [edi + 0xb4]
jne 0x450f13
lea eax, [ebp - 0x1c0]
push eax
lea ecx, [edi + 0xb4]
call fcn.00455ac0
push eax
add eax, 0x10
push eax
push ecx
lea eax, [ebp - 0x224]
push eax
lea ecx, [edi + 0xb4]
call fcn.00455b60
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
cmp edi, esi
je 0x451138
push 0xffffffffffffffff
push 0
push edi
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x11c], 0xf
mov dword [ebp - 0x120], 0
mov byte [ebp - 0x130], 0
call fcn.0044f670
push 0x48
lea eax, [ebp - 0xb8]
mov dword [ebp - 0xbc], 0xf
push 0
push eax
mov dword [ebp - 0xc0], 0
mov byte [ebp - 0xd0], 0
call fcn.0054aa90
add esp, 0xc
mov dword [ebp - 0xa4], 0xf
mov dword [ebp - 0xa8], 0
mov byte [ebp - 0xb8], 0
mov dword [ebp - 0x8c], 0xf
mov dword [ebp - 0x90], 0
mov byte [ebp - 0xa0], 0
mov dword [ebp - 0x74], 0xf
mov dword [ebp - 0x78], 0
mov byte [ebp - 0x88], 0
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0xe8]
call fcn.0044f670
lea eax, [ebp - 0x118]
push eax
lea edx, [ebp - 0x130]
lea ecx, [ebp - 0x290]
call fcn.00454b90
add esp, 4
mov esi, eax
lea eax, [ebp - 0xd0]
cmp eax, esi
je 0x451048
mov eax, dword [ebp - 0xbc]
cmp eax, 0x10
jb 0x451021
inc eax
lea ecx, [ebp - 0xd0]
push eax
push dword [ebp - 0xd0]
call fcn.0044c890
push esi
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xbc], 0xf
mov dword [ebp - 0xc0], 0
mov byte [ebp - 0xd0], 0
call fcn.00452e10
lea eax, [esi + 0x18]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0xb8]
call fcn.004528b0
lea ecx, [ebp - 0x278]
call fcn.004512a0
mov eax, dword [ebp - 0x27c]
cmp eax, 0x10
jb 0x451084
inc eax
lea ecx, [ebp - 0x290]
push eax
push dword [ebp - 0x290]
call fcn.0044c890
mov esi, dword [0x619190]
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0x218]
mov ecx, 0x619190
push eax
call fcn.00452200
cmp dword [eax], esi
jne 0x4510c4
lea eax, [ebp - 0xd0]
push eax
call fcn.00455ca0
push eax
add eax, 0x10
push eax
push ecx
lea eax, [ebp - 0x22c]
push eax
call fcn.00455d60
lea ecx, [ebp - 0xb8]
call fcn.004512a0
mov eax, dword [ebp - 0xbc]
cmp eax, 0x10
jb 0x4510ed
inc eax
lea ecx, [ebp - 0xd0]
push eax
push dword [ebp - 0xd0]
call fcn.0044c890
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0xbc], 0xf
mov dword [ebp - 0xc0], 0
mov byte [ebp - 0xd0], 0
cmp eax, 0x10
jb 0x45112a
inc eax
lea ecx, [ebp - 0x130]
push eax
push dword [ebp - 0x130]
call fcn.0044c890
mov esi, dword [ebp - 0x18]
add edi, 0x18
cmp edi, esi
jne 0x450f21
lea ecx, [ebp - 0x178]
call fcn.00451360
lea ecx, [ebp - 0x1c0]
call fcn.004512a0
mov edi, dword [ebp - 0x1c]
test edi, edi
je 0x45119b
push dword [ebp - 0x218]
lea eax, [ebp - 0x1c]
push eax
push esi
push edi
call fcn.00455990
mov ecx, dword [ebp - 0x14]
mov eax, 0x2aaaaaab
sub ecx, edi
add esp, 0x10
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push edi
call fcn.00453170
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov edi, dword [ebp - 0x214]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x58]
cmp eax, 0x10
jb 0x4511ba
inc eax
lea ecx, [ebp - 0x6c]
push eax
push dword [ebp - 0x6c]
call fcn.0044c890
mov esi, dword [ebx + 0x28]
test esi, esi
je 0x4511d3
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
test eax, eax
jne 0x451218
mov esi, dword [esi + 0x28]
test esi, esi
jne 0x4511c1
xor ebx, ebx
mov eax, dword [ebp - 0x40]
cmp eax, 0x10
jb 0x4511ea
inc eax
lea ecx, [ebp - 0x54]
push eax
push dword [ebp - 0x54]
call fcn.0044c890
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x40], 0xf
mov dword [ebp - 0x44], 0
mov byte [ebp - 0x54], 0
mov byte [ebp - 4], 1
call fcn.004512a0
test ebx, ebx
jne 0x450a90
jmp 0x4509d8
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
mov ebx, eax
jmp 0x4511d5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_fetch_the_XML_content_from_ProductInfo.xml_resource_:__d
push 0
push 5
push str.AdobeGCClientMain
push dword [0x618bf4]
call fcn.004b11f0
add esp, 0x18
mov eax, dword [ebp - 0x28]
cmp eax, 0x10
jb 0x45125b
inc eax
lea ecx, [ebp - 0x3c]
push eax
push dword [ebp - 0x3c]
call fcn.0044c890
lea ecx, [ebp - 0x208]
mov dword [ebp - 0x28], 0xf
mov dword [ebp - 0x2c], 0
mov byte [ebp - 0x3c], 0
call fcn.00449d40
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00544516
mov esp, ebp
pop ebp
ret