Function at 0x404170
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push 0xffffffffffffffff
push 0x46e72e
mov eax, dword fs:[0]
push eax
sub esp, 0x220
mov eax, dword [0x48e820]
xor eax, esp
mov dword [esp + 0x21c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x48e820]
xor eax, esp
push eax
lea eax, [esp + 0x234]
mov dword fs:[0], eax
push str.MYDATA
push 0xbc
push 0
mov dword [esp + 0x248], 0
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov esi, eax
test esi, esi
je 0x404486
push esi
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x404486
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push esi
push 0
mov edi, eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov esi, eax
lea ecx, [esi + 1]
push ecx
call fcn.0042ff09
push esi
mov ebx, eax
push edi
push ebx
call fcn.004585d0
mov edx, dword [ebx + esi - 8]
mov edi, dword [ebx + esi - 0xc]
mov esi, dword [ebx + esi - 4]
add esp, 0x10
cmp esi, 0x1388
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], esi
ja 0x404486
xor ecx, ecx
mov eax, esi
mov edx, 0x108
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0042ff09
mov ebp, eax
mov eax, esi
imul eax, eax, 0x108
push eax
add edi, ebx
push edi
push ebp
mov dword [esp + 0x30], ebp
call fcn.004585d0
add esp, 0x10
test esi, esi
mov dword [esp + 0x1c], 0
jle 0x404430
add ebp, 0x100
push 0x109
lea ecx, [esp + 0x34]
push 0
push ecx
call fcn.00458160
lea esi, [ebp - 0x100]
mov eax, esi
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x404295
sub eax, edx
push eax
lea edx, [esp + 0x34]
push esi
push edx
call fcn.00454fb9
add esp, 0xc
call fcn.0043adc8
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x40447c
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x244]
push ecx
lea ecx, [esp + 0x1c]
mov byte [esp + 0x240], 1
call fcn.0040f3c0
lea eax, [esp + 0x30]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4042f3
sub eax, edx
sar eax, 1
push eax
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x20]
push eax
call fcn.0040fa20
call fcn.0043adc8
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x40447c
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
push esi
lea ecx, [esp + 0x18]
mov byte [esp + 0x240], 2
call fcn.00410440
lea edi, [esp + 0x14]
call fcn.0040e820
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jl 0x4043b2
push str..rct
push eax
call fcn.00455250
add esp, 8
test eax, eax
je 0x4043b2
mov ecx, dword [esp + 0x14]
sub eax, ecx
cmp eax, 0xffffffff
je 0x4043b2
mov esi, dword [ebp + 4]
push ecx
mov ecx, 0x492e30
call fcn.00430e75
mov ecx, edi
mov dword [eax], esi
mov edx, dword [0x492e54]
push ecx
push edx
mov ecx, 0x492e4c
call fcn.00431252
mov eax, dword [esp + 0x14]
mov esi, dword [ebp]
push eax
mov ecx, 0x492e14
add esi, ebx
call fcn.00430e75
mov dword [eax], esi
mov ecx, dword [ebp + 4]
mov eax, dword [ebp]
mov esi, dword [esp + 0x18]
push ecx
add eax, ebx
push esi
call fcn.0041cff0
mov byte [esp + 0x23c], 1
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4043ed
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov byte [esp + 0x23c], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404411
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 1
add ebp, 0x108
cmp eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
jl 0x404276
mov ebp, dword [esp + 0x20]
push ebp
call fcn.0042ff0e
add esp, 4
cmp dword [0x492e54], 0
jle 0x404447
call fcn.004044e0
mov dword [esp + 0x23c], 0xffffffff
mov eax, dword [esp + 0x244]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404475
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
jmp 0x4044b6
push 0x80004005
call fcn.0040fef0
mov dword [esp + 0x23c], 0xffffffff
mov eax, dword [esp + 0x244]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4044b4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x234]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x21c]
xor ecx, esp
call fcn.004540ed
add esp, 0x22c
ret