Function at 0x40d470
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0x74
push 0xffffffffffffffff
push 0x48302f
mov eax, dword fs:[0]
push eax
sub esp, 0x90
mov eax, dword [0x49c0a4]
xor eax, ebp
mov dword [ebp + 0x70], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp + 0x24], esi
mov byte [ebp + 0x37], 0
mov dword [ebp - 4], 0
push 0x492df8
push 0xa4ff
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
je 0x40d728
push edi
push 0
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp + 0x2c], eax
push edi
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp + 0x10], eax
mov byte [ebp - 4], 1
test eax, eax
je 0x40d716
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ebx, eax
test ebx, ebx
je 0x40d716
lea eax, [ebp + 0x30]
push eax
mov ecx, str.662446ED_25C8_4670_BC4F_57FC55E32729
call fcn.00402600
mov byte [ebp - 4], 2
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea edi, [ebp + 8]
call fcn.00401070
mov byte [ebp - 4], 4
lea ecx, [ebp + 0x30]
push ecx
call fcn.004026b0
push ebx
lea edx, [ebp + 0x28]
push edx
mov ecx, dword [ebp + 0x2c]
mov ebx, edi
call fcn.00401140
mov byte [ebp - 4], 5
mov eax, dword [ebp + 0x28]
xor ebx, ebx
cmp dword [eax], ebx
je 0x40d6e8
cmp dword [eax + 4], ebx
je 0x40d6e8
lea eax, [ebp + 0x28]
push eax
lea ecx, [ebp + 0x2c]
push ecx
call fcn.00417a00
add esp, 8
mov byte [ebp - 4], 6
mov eax, dword [ebp + 0x2c]
cmp dword [eax], ebx
je 0x40d6dc
cmp dword [eax + 4], ebx
je 0x40d6dc
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov edi, 0xf
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x4c], ebx
mov byte [ebp + 0x3c], bl
push ecx
push eax
lea ecx, [ebp + 0x38]
call fcn.00402fb0
mov byte [ebp - 4], 7
lea edx, [ebp + 0x38]
push edx
lea eax, [ebp - 0x9c]
push eax
call fcn.0040de50
mov byte [ebp - 4], 8
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x68], ebx
mov byte [ebp + 0x58], bl
mov byte [ebp - 4], 9
lea esp, [esp]
push 0xa
mov ecx, dword [ebp - 0x9c]
mov ecx, dword [ecx + 4]
lea ecx, [ebp + ecx - 0x9c]
call fcn.0040ec70
movzx edx, al
push edx
lea eax, [ebp - 0x9c]
push eax
lea ecx, [ebp + 0x54]
call fcn.0040ee00
add esp, 8
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov edx, dword [ecx + 8]
and dl, 6
movsx eax, dl
neg eax
sbb eax, eax
not eax
test ecx, eax
je 0x40d6ac
cmp dword [ebp + 0x6c], 0x10
mov ecx, dword [ebp + 0x58]
jae 0x40d627
lea ecx, [ebp + 0x58]
lea edx, [ebp + 0x30]
push edx
call fcn.00402600
mov byte [ebp - 4], 0xa
lea eax, [ebp + 0x30]
call fcn.0040e6b0
mov edi, eax
call fcn.0040e710
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [ebp], ebx
mov ecx, dword [esi]
mov dword [ebp], ecx
mov dword [ebp + 0x1c], ecx
mov dword [ebp + 0x20], eax
mov eax, dword [esi + 0x14]
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x18], eax
mov eax, dword [esi]
mov dword [ebp + 0x14], eax
lea esi, [ebp + 0x14]
lea edi, [ebp + 0x1c]
call fcn.00418d70
test al, al
je 0x40d697
mov esi, edi
call fcn.0040ddd0
mov ecx, dword [eax]
mov edx, dword [ecx]
lea eax, [ebp + 0x30]
push eax
mov edx, dword [edx]
call edx
test al, al
jne 0x40d697
lea edi, [ebp - 0x18]
call fcn.0040de00
mov esi, dword [ebp + 0x24]
jmp 0x40d656
mov byte [ebp - 4], 9
lea eax, [ebp + 0x30]
push eax
call fcn.004026b0
mov esi, dword [ebp + 0x24]
jmp 0x40d5d0
mov byte [ebp + 0x37], 1
mov byte [ebp - 4], 8
lea ecx, [ebp + 0x54]
call fcn.004025d0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x4c]
call fcn.0040def0
lea ecx, [ebp - 0x4c]
call fcn.0040d8a0
mov byte [ebp - 4], 6
lea ecx, [ebp + 0x38]
call fcn.004025d0
mov byte [ebp - 4], 5
lea edi, [ebp + 0x2c]
call fcn.004012d0
mov byte [ebp - 4], 4
lea edi, [ebp + 0x28]
call fcn.004012d0
mov byte [ebp - 4], 1
mov eax, dword [ebp + 0xc]
cmp eax, ebx
je 0x40d706
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov eax, dword [ebp + 8]
cmp eax, ebx
je 0x40d716
push 0
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov byte [ebp - 4], 0
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x40d728
push eax
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov dword [ebp - 4], 0xffffffff
mov al, byte [ebp + 0x37]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x70]
xor ecx, ebp
call fcn.00464c90
add ebp, 0x74
mov esp, ebp
pop ebp
ret