Function at 0x507a50
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5e2d7d
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
push edi
mov eax, dword [0x65eb68]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x34], ebx
mov edx, dword [ebx + 0x40]
mov ecx, dword [ebx + 0xb8]
lea eax, [edx + 1]
cmp eax, dword [ecx + 0x2c]
jge 0x507ac6
mov edi, edi
add edx, 1
js 0x507aa2
cmp edx, dword [ecx + 0x2c]
jge 0x507aa2
mov eax, dword [ecx + 0x28]
mov edx, dword [eax + edx*4]
jmp 0x507aa4
xor edx, edx
mov eax, dword [edx + 0x44]
cmp eax, dword [0x65e324]
jl 0x507ac6
mov eax, dword [ecx]
push edx
call dword [eax + 0x50]
mov edx, dword [ebx + 0x40]
mov ecx, dword [ebx + 0xb8]
lea eax, [edx + 1]
cmp eax, dword [ecx + 0x2c]
jl 0x507a90
mov ecx, dword [ebx + 0xc0]
call fcn.004cadf0
push eax
push 0x61d22c
call fcn.00576758
add esp, 8
test eax, eax
je 0x507aeb
mov esi, dword [eax + 0x120]
jmp 0x507aed
xor esi, esi
mov ecx, dword [ebx + 0xc0]
mov dword [ebp - 0x24], esi
call fcn.004caed0
test eax, eax
jne 0x507e56
test esi, esi
je 0x507e56
mov edi, dword [ebx + 0x40]
or dword [ebx + 0x90], 1
inc edi
mov dword [ebp - 0x10], edi
call fcn.0056500f
mov ecx, eax
test ecx, ecx
je 0x507e74
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
push 0
push 0
push 0x229
push esi
mov dword [ebp - 4], 0
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x507b86
push eax
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
mov edx, dword [0x65e324]
mov dword [ebp - 0x20], 0x8000
lea ecx, [eax - 0x8000]
cmp ecx, 0x2e
cmovbe edx, dword [ebp - 0x20]
dec eax
cmp eax, 0x2d
mov eax, 1
cmovbe edx, eax
mov dword [0x65e324], edx
jmp 0x507b8c
mov edx, dword [0x65e324]
push edx
push esi
mov dword [ebp - 0x14], edx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, eax
test esi, esi
je 0x507e20
push esi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x507dee
lea eax, [ebp - 0x18]
push eax
push esi
call fcn.0048dc60
add esp, 8
mov ecx, 0xb
cmp dword [0x669f3c], 0
mov eax, 1
cmovne eax, ecx
mov ecx, dword [ebx + 0xb8]
push 1
push edi
push 0x5ecc50
push dword [ebp - 0x14]
push eax
call fcn.004aed50
mov ecx, dword [ebp - 0x10]
mov edi, eax
sub ecx, dword [ebx + 0x40]
lea eax, [ebp - 0x18]
push ecx
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x20], edi
push eax
call fcn.005065d0
add esp, 0xc
push dword [eax]
mov ecx, edi
mov byte [ebp - 4], 1
call fcn.004b52f0
mov edx, dword [ebp - 0x28]
or eax, 0xffffffff
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x507c30
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx + 0x40]
xor ecx, ecx
mov edx, dword [edi]
inc eax
cmp dword [ebp - 0x10], eax
sete cl
push ecx
mov ecx, edi
call dword [edx + 0x5c]
mov edx, dword [edi]
xor eax, eax
cmp dword [ebp - 0x2c], esi
mov esi, dword [ebp - 0x20]
mov ecx, esi
sete al
push eax
call dword [edx + 0x68]
push 8
mov ecx, esi
call fcn.004b5690
mov ecx, ebx
mov dword [esi + 0x4c], 0xef1f
call fcn.004b4460
test al, al
jns 0x507c8f
mov eax, dword [ebx + 0x40]
inc eax
cmp dword [ebp - 0x10], eax
jne 0x507c8f
mov ecx, esi
call fcn.004b4460
or eax, 0x80
mov ecx, esi
push eax
call fcn.004b5690
call fcn.0056500f
mov ecx, eax
test ecx, ecx
je 0x507e74
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x1c], esi
push 0xef1f
mov byte [ebp - 4], 2
call fcn.00564ec8
mov ebx, eax
test ebx, ebx
je 0x507db2
push 6
push 0xef2
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x507db2
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x507db2
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x507db2
push dword [ebp - 0x30]
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebx, 0xf
lea ecx, [eax + edi]
lea ecx, [ecx]
cmp edi, ecx
jae 0x507db2
movzx edx, word [edi]
inc edx
lea edx, [edi + edx*2]
cmp edx, ecx
jae 0x507db2
movzx eax, word [edx]
lea edx, [edx + eax*2]
add edx, 2
cmp edx, ecx
jae 0x507db2
movzx eax, word [edx]
lea edx, [edx + eax*2]
add edx, 2
cmp edx, ecx
jae 0x507db2
movzx eax, word [edx]
lea edx, [edx + eax*2]
add edx, 2
cmp edx, ecx
jae 0x507db2
movzx edi, word [edx]
inc edi
lea edi, [edx + edi*2]
sub ebx, 5
jne 0x507d10
cmp edi, ecx
jae 0x507db2
movzx edx, word [edi]
test dx, dx
je 0x507db2
mov eax, dword [esi - 8]
mov ebx, edx
mov ecx, 1
sub eax, ebx
sub ecx, dword [esi - 4]
or eax, ecx
jge 0x507d88
push ebx
lea ecx, [ebp - 0x1c]
call fcn.00405578
movzx edx, word [edi]
mov esi, dword [ebp - 0x1c]
movzx eax, dx
add edi, 2
push eax
push edi
push ebx
push esi
call fcn.005a7137
push eax
call fcn.00404d28
add esp, 0x14
cmp ebx, dword [esi - 8]
jg 0x507e7e
xor eax, eax
mov dword [esi - 0xc], ebx
mov word [esi + ebx*2], ax
mov ecx, dword [ebp - 0x20]
push esi
call fcn.004b5770
mov edi, dword [ebp - 0x10]
add esi, 0xfffffff0
mov ebx, dword [ebp - 0x34]
inc edi
mov eax, edi
mov dword [ebp - 0x10], edi
mov byte [ebp - 4], 0
sub eax, dword [ebx + 0x40]
cmp eax, dword [0x65e328]
jg 0x507e0b
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x507dee
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14]
inc eax
push eax
push dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
call dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, eax
test esi, esi
jne 0x507ba1
jmp 0x507e20
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x507e20
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
or eax, 0xffffffff
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x507e60
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [ebx + 0x90], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x80004005
call fcn.00404e0e
push 0x80070057
call fcn.00404e0e
int3