Function at 0x407a40
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x484
mov eax, dword [0x41d018]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x468], 0
mov dword [ebp - 0x474], 0
mov dword [ebp - 0x47c], 0
mov dword [ebp - 8], 0
push 0x4154cc
lea eax, [ebp - 0x434]
push eax
call dword [sym.imp.MSVCR90.dll_wcscpy]
add esp, 8
push 0x10
push 1
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x474], eax
cmp dword [ebp - 0x474], 0
je 0x407b8c
mov edx, dword [ebp - 0x474]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x47c], eax
cmp dword [ebp - 0x47c], 0
je 0x407b8c
mov ecx, dword [ebp - 0x47c]
push ecx
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
add edx, 0x28
mov dword [ebp - 0x440], edx
mov eax, dword [ebp - 0x440]
mov ecx, dword [eax + 8]
and ecx, 0xffff0000
shr ecx, 0x10
mov word [ebp - 0x438], cx
mov edx, dword [ebp - 0x440]
mov eax, dword [edx + 8]
and eax, 0xffff
mov word [ebp - 0x478], ax
mov ecx, dword [ebp - 0x440]
mov edx, dword [ecx + 0xc]
and edx, 0xffff0000
shr edx, 0x10
mov word [ebp - 0x43c], dx
mov eax, dword [ebp - 0x440]
mov ecx, dword [eax + 0xc]
and ecx, 0xffff
mov word [ebp - 0x470], cx
movsx edx, word [ebp - 0x470]
push edx
movsx eax, word [ebp - 0x43c]
push eax
movsx ecx, word [ebp - 0x478]
push ecx
movsx edx, word [ebp - 0x438]
push edx
push 0x4154d0
lea eax, [ebp - 0x434]
push eax
call fcn.00401000
add esp, 0x18
mov ecx, dword [ebp - 0x47c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeResource]
lea edx, [ebp - 0x434]
push edx
push 0x462550
call dword [sym.imp.MSVCR90.dll_wcscpy]
add esp, 8
mov dword [ebp - 0x480], 0
push 0x400
push 0
lea eax, [ebp - 0x410]
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
mov ecx, dword [ebp + 0x10]
push ecx
call dword [sym.imp.MSVCR90.dll_wcslen]
add esp, 4
mov dword [ebp - 0x464], eax
cmp dword [ebp - 0x464], 0
jle 0x407cb8
cmp dword [ebp - 0x464], 0x200
jge 0x407cb8
mov edx, dword [ebp + 0x10]
push edx
lea eax, [ebp - 0x410]
push eax
call dword [sym.imp.MSVCR90.dll_wcscpy]
add esp, 8
mov dword [ebp - 0x46c], 0
mov ecx, dword [ebp - 0x46c]
mov dword [ebp - 0x414], ecx
jmp 0x407c2c
mov edx, dword [ebp - 0x414]
add edx, 1
mov dword [ebp - 0x414], edx
mov eax, dword [ebp - 0x414]
cmp eax, dword [ebp - 0x464]
jge 0x407cb8
mov ecx, dword [ebp - 0x414]
movzx edx, word [ebp + ecx*2 - 0x410]
cmp edx, 0x22
jne 0x407c88
mov eax, dword [ebp - 0x46c]
add eax, 1
mov dword [ebp - 0x46c], eax
cmp dword [ebp - 0x46c], 2
jne 0x407c86
xor ecx, ecx
mov edx, dword [ebp - 0x480]
mov word [edx*2 + 0x4625d0], cx
mov eax, dword [ebp - 0x480]
add eax, 1
mov dword [ebp - 0x480], eax
jmp 0x407cb8
jmp 0x407cb3
mov ecx, dword [ebp - 0x480]
mov edx, dword [ebp - 0x414]
mov ax, word [ebp + edx*2 - 0x410]
mov word [ecx*2 + 0x4625d0], ax
mov ecx, dword [ebp - 0x480]
add ecx, 1
mov dword [ebp - 0x480], ecx
jmp 0x407c1d
xor edx, edx
mov eax, dword [ebp - 0x480]
mov word [eax*2 + 0x4625d0], dx
push 0xff
lea ecx, [ebp - 0x410]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x5c
lea eax, [ebp - 0x410]
push eax
call fcn.00401510
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x407d00
xor ecx, ecx
mov edx, dword [ebp - 4]
mov word [edx], cx
lea eax, [ebp - 0x410]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov ecx, 0x4667b8
call fcn.004122d0
movzx edx, al
test edx, edx
je 0x407dbe
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00407940
add esp, 8
test eax, eax
je 0x407dbe
push 0x6d
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
mov dword [ebp - 0x444], eax
push 0
push 0
push 0
lea eax, [ebp - 0x460]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
mov dword [ebp - 0x484], eax
cmp dword [ebp - 0x484], 0
je 0x407db2
cmp dword [ebp - 0x484], 0xffffffff
jne 0x407d77
jmp 0x407db0
lea ecx, [ebp - 0x460]
push ecx
mov edx, dword [ebp - 0x444]
push edx
mov eax, dword [ebp - 0x460]
push eax
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x407db0
lea ecx, [ebp - 0x460]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [ebp - 0x460]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x407d4a
mov eax, dword [ebp - 0x458]
mov dword [ebp - 0x468], eax
mov ecx, 0x4667b8
call fcn.00411670
mov eax, dword [ebp - 0x468]
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.00406c5c
mov esp, ebp
pop ebp
ret 0x10