Function at 0x40aa50
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x530
mov eax, dword [0x4c6af0]
xor eax, ebp
mov dword [ebp - 0x20], eax
push 0x4ae788
push 0xb6
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0x124]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x124]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x52c], eax
mov edx, dword [ebp - 0x52c]
push edx
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 8], eax
mov dword [ebp - 0x530], 0xffffffff
mov dword [ebp - 4], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
jmp 0x40aaf1
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0xc]
jae 0x40ad58
mov edx, dword [ebp - 8]
add edx, dword [ebp - 0x18]
mov al, byte [edx]
mov byte [ebp - 0x126], al
mov ecx, dword [ebp - 0x14]
mov dl, byte [ebp - 0x126]
mov byte [ebp + ecx - 0x528], dl
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
movzx ecx, byte [ebp - 0x126]
cmp ecx, 0xa
jne 0x40ab3b
mov dword [ebp - 0x14], 0
jmp 0x40aae8
movzx edx, byte [ebp - 0x126]
cmp edx, 0xd
jne 0x40ab5b
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x14]
mov byte [ebp + ecx - 0x529], 0
cmp dword [ebp - 4], 2
jl 0x40ab6d
movzx edx, byte [ebp - 0x126]
cmp edx, 0xd
je 0x40ab72
jmp 0x40aae8
mov dword [ebp - 0x1c], 0
jmp 0x40ab84
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge 0x40abca
cmp dword [ebp - 0x1c], 0x20
jge 0x40aba6
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov cl, byte [ebp + eax - 0x528]
mov byte [edx], cl
jmp 0x40abad
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x1f], 0
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [ebp + eax - 0x528]
cmp ecx, 0x2c
jne 0x40abc8
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0x1c]
mov byte [edx], 0
jmp 0x40abca
jmp 0x40ab7b
mov dword [ebp - 0x10], 0
jmp 0x40abdc
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge 0x40ad14
mov edx, dword [ebp - 0x1c]
movzx eax, byte [ebp + edx - 0x528]
cmp eax, 0x30
jne 0x40ad0a
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ebp + ecx - 0x527]
cmp edx, 0x78
je 0x40ac20
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [ebp + eax - 0x527]
cmp ecx, 0x78
jne 0x40ad03
mov edx, dword [ebp - 0x1c]
mov al, byte [ebp + edx - 0x526]
mov byte [ebp - 0x126], al
mov ecx, dword [ebp - 0x1c]
mov dl, byte [ebp + ecx - 0x525]
mov byte [ebp - 0x125], dl
movzx eax, byte [ebp - 0x126]
cmp eax, 0x30
jl 0x40ac6a
movzx ecx, byte [ebp - 0x126]
cmp ecx, 0x39
jg 0x40ac6a
movzx edx, byte [ebp - 0x126]
and edx, 0xf
mov byte [ebp - 0x126], dl
jmp 0x40ac8a
movzx eax, byte [ebp - 0x126]
and eax, 0xf
mov byte [ebp - 0x126], al
movzx ecx, byte [ebp - 0x126]
add ecx, 9
mov byte [ebp - 0x126], cl
movzx edx, byte [ebp - 0x125]
cmp edx, 0x30
jl 0x40acb4
movzx eax, byte [ebp - 0x125]
cmp eax, 0x39
jg 0x40acb4
movzx ecx, byte [ebp - 0x125]
and ecx, 0xf
mov byte [ebp - 0x125], cl
jmp 0x40acd4
movzx edx, byte [ebp - 0x125]
and edx, 0xf
mov byte [ebp - 0x125], dl
movzx eax, byte [ebp - 0x125]
add eax, 9
mov byte [ebp - 0x125], al
movzx ecx, byte [ebp - 0x126]
shl ecx, 4
movzx edx, byte [ebp - 0x125]
add ecx, edx
mov eax, dword [ebp - 0x10]
mov byte [ebp + eax - 0x120], cl
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x1c]
add edx, 3
mov dword [ebp - 0x1c], edx
jmp 0x40abd3
jmp 0x40abd3
push 6
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x120]
push ecx
call fcn.0044fdaa
add esp, 0xc
test eax, eax
jne 0x40ad53
mov dword [ebp - 0x530], 0
mov edx, dword [ebp - 0x10]
add edx, 1
push edx
lea eax, [ebp - 0x120]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00451780
add esp, 0xc
jmp 0x40ad58
jmp 0x40aae8
mov eax, dword [ebp - 0x530]
mov ecx, dword [ebp - 0x20]
xor ecx, ebp
call fcn.0044e8ae
mov esp, ebp
pop ebp
ret