Function at 0x428130
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push 0xffffffffffffffff
push 0x4aeca8
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4d9114]
xor eax, esp
push eax
lea eax, [esp + 0x38]
mov dword fs:[0], eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov edx, dword [esp + 0x48]
push eax
lea ecx, [esp + 0x18]
xor esi, esi
push ecx
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], esi
call fcn.0040ef4e
mov dword [esp + 0x40], esi
mov edx, dword [esp + 0x14]
mov ecx, dword [edx - 0x10]
test ecx, ecx
je 0x428190
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
test eax, eax
jne 0x42819f
mov eax, dword [0x4eb73c]
mov edx, dword [eax + 0x10]
mov ecx, 0x4eb73c
call edx
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4285c1
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebp, [eax + 0x10]
mov dword [esp + 0x18], ebp
mov byte [esp + 0x40], 1
mov ecx, 0x4c2cb8
push 0
test ecx, 0xffff0000
jne 0x428334
mov edx, ecx
movzx eax, dx
mov ecx, 0x4eb6f8
mov dword [esp + 0x20], eax
xor esi, esi
call fcn.00486946
mov edi, eax
mov dword [esp + 0x20], 1
test edi, edi
je 0x4283e6
test esi, esi
jne 0x4283e6
mov ecx, dword [esp + 0x1c]
shr ecx, 4
inc ecx
push esi
movzx edx, cx
push edx
push 6
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceExW]
mov ebx, eax
test ebx, ebx
je 0x428277
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x428271
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x428271
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
lea ecx, [eax + esi]
mov eax, dword [esp + 0x1c]
and eax, 0xf
jbe 0x428260
mov edi, edi
cmp esi, ecx
jae 0x428264
sub eax, 1
movzx edx, word [esi]
lea esi, [esi + edx*2 + 2]
jne 0x428250
cmp esi, ecx
jb 0x428268
xor eax, eax
jmp 0x428271
movzx eax, word [esi]
neg eax
sbb eax, eax
and eax, esi
mov esi, eax
test eax, eax
jne 0x42829a
mov ebx, dword [esp + 0x20]
push ebx
mov ecx, 0x4eb6f8
call fcn.00486946
mov edi, eax
inc ebx
mov dword [esp + 0x20], ebx
test edi, edi
jne 0x4281fd
jmp 0x4283e6
test edi, edi
je 0x4283e6
mov esi, dword [esp + 0x1c]
mov eax, esi
shr eax, 4
inc eax
movzx ecx, ax
push 6
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
test eax, eax
je 0x4283e6
push esi
push eax
push edi
call fcn.004010c9
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4283e6
movzx eax, word [edi]
push 0
push 0
push 0
push 0
push eax
lea ebx, [edi + 2]
push ebx
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, eax
mov eax, dword [ebp - 8]
mov ecx, 1
sub ecx, dword [ebp - 4]
sub eax, esi
or eax, ecx
jge 0x428311
push esi
lea ecx, [esp + 0x1c]
call fcn.0040711d
mov ebp, dword [esp + 0x18]
movzx eax, word [edi]
push 0
push 0
push esi
push ebp
push eax
push ebx
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test esi, esi
jge 0x428386
push 0x80070057
call fcn.0040101f
mov edi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push 0
push 0
push 0
push 0xffffffffffffffff
push 0x4c2cb8
push 0
push 3
call edi
mov esi, eax
dec esi
test esi, esi
jle 0x428394
mov eax, dword [ebp - 8]
mov ecx, 1
sub ecx, dword [ebp - 4]
sub eax, esi
or eax, ecx
jge 0x428373
push esi
lea ecx, [esp + 0x1c]
call fcn.0040711d
mov ebp, dword [esp + 0x18]
push 0
push 0
push esi
push ebp
push 0xffffffffffffffff
push 0x4c2cb8
push 0
push 3
call edi
cmp esi, dword [ebp - 8]
jg 0x42832a
mov dword [ebp - 0xc], esi
mov byte [esi + ebp], 0
jmp 0x4283e6
cmp dword [ebp - 0xc], 0
mov esi, dword [ebp - 0x10]
lea eax, [ebp - 0x10]
je 0x4283e6
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x4283c0
cmp dword [ebp - 8], 0
jl 0x42832a
mov dword [ebp - 0xc], 0
mov byte [ebp], 0
jmp 0x4283e6
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4283d6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
mov ecx, esi
call eax
lea ebp, [eax + 0x10]
mov dword [esp + 0x18], ebp
mov byte [esp + 0x40], 2
xor eax, eax
test ebp, ebp
setne al
test eax, eax
je 0x4285c1
mov ecx, dword [esp + 0x14]
push ebp
push ecx
call fcn.00488bc6
add esp, 8
test eax, eax
setne bl
mov byte [esp + 0x40], 0
add ebp, 0xfffffff0
lea edx, [ebp + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x42842f
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebp
call eax
test bl, bl
je 0x4285cb
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx]
lea ecx, [esp + 0x14]
call fcn.004149e6
lea edx, [esp + 0x14]
push edx
push 0x4ec840
lea ebx, [esp + 0x34]
call fcn.00408f42
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov edx, dword [esp + 0x48]
push eax
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x2c]
call fcn.0040ef4e
mov byte [esp + 0x40], 4
mov edi, dword [eax]
mov eax, dword [esp + 0x14]
lea ecx, [edi - 0x10]
lea esi, [eax - 0x10]
cmp ecx, esi
je 0x428593
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x4284c7
mov edx, dword [ecx]
cmp edx, dword [esi]
jne 0x4284c7
push ecx
call fcn.00405bac
mov edi, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x4284bb
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [esp + 0x14], edi
jmp 0x428593
mov ebx, dword [edi - 0xc]
test ebx, ebx
jne 0x428520
mov edi, dword [esi]
cmp dword [esi + 4], ebx
je 0x428593
cmp dword [esi + 0xc], ebx
lea ecx, [esi + 0xc]
jge 0x4284f8
cmp dword [eax - 8], ebx
jl 0x42832a
mov dword [eax - 0xc], ebx
mov ecx, dword [esp + 0x14]
mov byte [ecx], bl
jmp 0x428593
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42850e
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [edi]
mov edx, dword [eax + 0xc]
mov ecx, edi
call edx
add eax, 0x10
mov dword [esp + 0x14], eax
jmp 0x428593
test edi, edi
je 0x42832a
mov ecx, dword [eax - 0xc]
mov dword [esp + 0x20], ecx
mov ecx, 1
sub ecx, dword [esi + 0xc]
mov esi, dword [esi + 8]
mov ebp, edi
sub esi, ebx
sub ebp, eax
or esi, ecx
jge 0x428552
push ebx
lea ecx, [esp + 0x18]
call fcn.0040711d
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 8]
push ebx
cmp ebp, dword [esp + 0x24]
ja 0x428568
add ebp, eax
push ebp
push ecx
push eax
call fcn.0048789a
jmp 0x428570
push edi
push ecx
push eax
call fcn.0048841e
add esp, 0x10
test ebx, ebx
jl 0x42832a
mov eax, dword [esp + 0x14]
cmp ebx, dword [eax - 8]
jg 0x42832a
mov dword [eax - 0xc], ebx
mov edx, dword [esp + 0x14]
mov byte [ebx + edx], 0
mov byte [esp + 0x40], 0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42817a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x42817a
push 0x80004005
call fcn.0040101f
mov dword [esp + 0x40], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4285f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret