Function at 0x401897
Capabilities:
Extract resource via kernel32 functions
Link many functions at runtime

Disassembly:
sub esp, 0x12c
push ebx
push ebp
push esi
push edi
push 0x403148
call fcn.00401058
mov esi, eax
mov dword [esp], 0x403130
call fcn.00401058
mov ebp, eax
mov dword [esp], 0x403120
call fcn.00401058
mov dword [esp + 0x14], eax
mov dword [esp], 0x40310c
call fcn.00401058
mov dword [esp + 0x38], eax
mov dword [esp], 0x4030f8
call fcn.00401058
mov dword [esp + 0x34], eax
mov dword [esp], 0x4030e4
call fcn.00401058
mov dword [esp + 0x30], eax
mov dword [esp], 0x4030d0
call fcn.00401058
mov dword [esp + 0x28], eax
mov dword [esp], 0x4030bc
call fcn.00401058
mov dword [esp + 0x1c], eax
mov dword [esp], 0x4030ac
call fcn.00401058
mov dword [esp + 0x20], eax
mov dword [esp], 0x40309c
call fcn.00401058
mov dword [esp + 0x24], eax
mov dword [esp], 0x403088
call fcn.00401058
mov dword [esp + 0x2c], eax
mov dword [esp], 0x403078
call fcn.00401058
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
pop ecx
mov ebx, 0x403068
push esi
push ebx
mov dword [esp + 0x1c], eax
call edi
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call esi
push ebp
push 0x40305c
mov dword [0x403190], eax
call edi
push eax
call esi
mov dword [0x403180], eax
push dword [esp + 0x10]
push ebx
call edi
push eax
call esi
mov dword [0x403188], eax
push dword [esp + 0x34]
push ebx
call edi
push eax
call esi
mov dword [0x40318c], eax
push dword [esp + 0x30]
push ebx
call edi
push eax
call esi
mov dword [0x403194], eax
push dword [esp + 0x2c]
push ebx
call edi
push eax
call esi
mov dword [0x40316c], eax
push dword [esp + 0x24]
push ebx
call edi
push eax
call esi
mov dword [0x403174], eax
push dword [esp + 0x18]
push ebx
call edi
push eax
call esi
mov dword [0x403178], eax
push dword [esp + 0x1c]
push ebx
call edi
push eax
call esi
mov dword [0x403184], eax
push dword [esp + 0x20]
push 0x40304c
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call esi
mov dword [0x403164], eax
push dword [esp + 0x28]
push ebx
call edi
push eax
call esi
mov dword [0x40317c], eax
push dword [esp + 0x14]
push ebx
call edi
push eax
call esi
mov esi, dword [sym.imp.KERNEL32.dll_FindResourceA]
push 0xa
xor edi, edi
push 3
push edi
mov dword [0x403168], eax
call esi
cmp eax, edi
je 0x401b6d
push eax
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
cmp eax, edi
je 0x401b6d
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ebp, eax
cmp ebp, edi
je 0x401b6d
push 1
pop ebx
cmp byte [ebp + 2], bl
jne 0x401a74
call fcn.00401212
test al, al
jne 0x401b6d
cmp byte [ebp], bl
jne 0x401a93
call fcn.00401128
test eax, eax
jne 0x401b6d
call fcn.00401194
test al, al
jne 0x401b6d
cmp byte [ebp + 1], bl
jne 0x401ab2
call fcn.004010b0
test al, al
jne 0x401b6d
call fcn.004010ec
test al, al
jne 0x401b6d
mov ebp, 0x403048
push ebp
push edi
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
jne 0x401b6d
push ebp
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
push 0xa
push ebx
push edi
call esi
mov ebx, eax
cmp ebx, edi
je 0x401b6d
mov ebp, dword [sym.imp.KERNEL32.dll_SizeofResource]
push ebx
push edi
call ebp
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_LoadResource]
push edi
mov dword [esp + 0x18], eax
call ebx
cmp eax, edi
je 0x401b6d
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
cmp eax, edi
mov dword [esp + 0x14], eax
je 0x401b6d
push 0xa
push 2
push edi
call esi
mov esi, eax
cmp esi, edi
je 0x401b6d
push esi
push edi
call ebp
push esi
push edi
mov ebp, eax
call ebx
cmp eax, edi
je 0x401b6d
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
cmp esi, edi
je 0x401b6d
lea eax, [esp + 0x38]
push 0x104
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push dword [esp + 0x10]
push ebp
push dword [esp + 0x18]
push esi
push dword [esp + 0x24]
call fcn.00401787
add esp, 0x10
push eax
lea eax, [esp + 0x40]
push eax
call fcn.004016e4
add esp, 0xc
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x12c
ret 0x10