Function at 0x4122f0
Capabilities:
Extract resource via kernel32 functions
Print debug messages

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x438aeb
push eax
mov dword fs:[0], esp
sub esp, 0x44
push ebx
push ebp
push esi
push edi
xor esi, esi
xor ebp, ebp
call fcn.00433c7e
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov eax, dword [eax + 0xc]
push ecx
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
cmp edi, esi
je 0x41262f
call fcn.00433c7e
mov eax, dword [eax + 0xc]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov ebx, eax
cmp ebx, esi
je 0x4124ec
call fcn.00433c7e
mov eax, dword [eax + 0xc]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push ebx
mov ebp, eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ebx, eax
cmp ebx, esi
je 0x4123bb
push 8
call fcn.0042a894
add esp, 4
mov dword [esp + 0x64], eax
cmp eax, esi
mov dword [esp + 0x5c], esi
je 0x41238d
mov ecx, eax
call fcn.00412220
mov edi, eax
jmp 0x41238f
xor edi, edi
cmp edi, esi
mov dword [esp + 0x5c], 0xffffffff
je 0x4123a4
push ebp
push ebx
mov ecx, edi
call fcn.00412230
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
add esp, 0x50
ret 8
push str.ERROR
lea ecx, [esp + 0x6c]
call fcn.004010e0
mov ebx, 1
push str.LockResource___fail
lea ecx, [esp + 0x6c]
mov dword [esp + 0x60], ebx
call fcn.004040f0
mov word [esp + 0x14], si
xor eax, eax
mov ecx, 0xf
lea edi, [esp + 0x16]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
call fcn.0042a8c9
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x64], eax
push 0x3c
lea eax, [esp + 0x18]
push 0x43b494
push eax
mov byte [esp + 0x68], 2
call fcn.0041d090
add esp, 0xc
push str.._srcUTResourceExtract.cpp
lea ecx, [esp + 0x68]
call fcn.00403b20
push 0x43b47c
lea ecx, [esp + 0x68]
call fcn.00408c80
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x68]
call fcn.00408c80
push 0x43b470
lea ecx, [esp + 0x68]
call fcn.00408c80
mov eax, dword [esp + 0x68]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x6c]
call fcn.00403be0
push 0x43b46c
lea ecx, [esp + 0x68]
call fcn.00408c80
push 0x43b464
lea ecx, [esp + 0x68]
call fcn.00408c80
mov esi, dword [esp + 0x64]
push esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea eax, [esi - 0x10]
mov byte [esp + 0x5c], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4124af
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
mov dword [esp + 0x5c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4124d5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
add esp, 0x50
ret 8
push str.ERROR
lea ecx, [esp + 0x6c]
call fcn.004010e0
mov ebx, 3
push str.LoadResource___fail
lea ecx, [esp + 0x6c]
mov dword [esp + 0x60], ebx
call fcn.004040f0
mov word [esp + 0x14], si
xor eax, eax
mov ecx, 0xf
lea edi, [esp + 0x16]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
call fcn.0042a8c9
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x64], eax
push 0x43
lea eax, [esp + 0x18]
push 0x43b494
push eax
mov byte [esp + 0x68], 4
call fcn.0041d090
add esp, 0xc
push str.._srcUTResourceExtract.cpp
lea ecx, [esp + 0x68]
call fcn.00403b20
push 0x43b47c
call fcn.0041c01e
add esp, 4
push eax
push 0x43b47c
lea ecx, [esp + 0x6c]
call fcn.00403be0
lea ecx, [esp + 0x14]
push ecx
call fcn.0041c01e
add esp, 4
push eax
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x6c]
call fcn.00403be0
push 0x43b470
call fcn.0041c01e
add esp, 4
push eax
push 0x43b470
lea ecx, [esp + 0x6c]
call fcn.00403be0
mov eax, dword [esp + 0x68]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x6c]
call fcn.00403be0
push 0x43b46c
call fcn.0041c01e
add esp, 4
push eax
push 0x43b46c
lea ecx, [esp + 0x6c]
call fcn.00403be0
push 0x43b464
call fcn.0041c01e
add esp, 4
push eax
push 0x43b464
lea ecx, [esp + 0x6c]
call fcn.00403be0
mov esi, dword [esp + 0x64]
push esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea eax, [esi - 0x10]
mov byte [esp + 0x5c], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412626
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x68]
jmp 0x41276d
push str.ERROR
lea ecx, [esp + 0x14]
call fcn.004010e0
mov ebx, 5
push str.FindResource___fail
lea ecx, [esp + 0x14]
mov dword [esp + 0x60], ebx
call fcn.004040f0
mov word [esp + 0x14], si
xor eax, eax
mov ecx, 0xf
lea edi, [esp + 0x16]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
call fcn.0042a8c9
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x64], eax
push 0x49
lea eax, [esp + 0x18]
push 0x43b494
push eax
mov byte [esp + 0x68], 6
call fcn.0041d090
add esp, 0xc
push str.._srcUTResourceExtract.cpp
lea ecx, [esp + 0x68]
call fcn.00403b20
push 0x43b47c
call fcn.0041c01e
add esp, 4
push eax
push 0x43b47c
lea ecx, [esp + 0x6c]
call fcn.00403be0
lea ecx, [esp + 0x14]
push ecx
call fcn.0041c01e
add esp, 4
push eax
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x6c]
call fcn.00403be0
push 0x43b470
call fcn.0041c01e
add esp, 4
push eax
push 0x43b470
lea ecx, [esp + 0x6c]
call fcn.00403be0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x6c]
call fcn.00403be0
push 0x43b46c
call fcn.0041c01e
add esp, 4
push eax
push 0x43b46c
lea ecx, [esp + 0x6c]
call fcn.00403be0
push 0x43b464
call fcn.0041c01e
add esp, 4
push eax
push 0x43b464
lea ecx, [esp + 0x6c]
call fcn.00403be0
mov esi, dword [esp + 0x64]
push esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea eax, [esi - 0x10]
mov byte [esp + 0x5c], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412769
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x5c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41278f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ecx, dword [esp + 0x54]
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x50
ret 8