Function at 0x4bc160
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a641c
mov eax, dword fs:[0]
push eax
mov eax, 0x1088
call fcn.0056e430
mov eax, dword [0x608554]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x102c], esi
call fcn.005596e2
push 0x1784
mov ecx, esi
call fcn.0055884f
push 1
push 0
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [esi]
mov edx, dword [eax + 0x1e8]
cmp eax, vtable.CBaseDlgPrinterSelectDirect.0
jne 0x4bcbf7
lea eax, [esi + 0x678]
test eax, eax
je 0x4bc1d7
mov eax, dword [eax + 0x20]
lea ecx, [ebp - 0x1094]
push ecx
mov ecx, dword [0x6184f8]
push eax
push dword [esi + 0x20]
call fcn.004b5c70
movups xmm0, xmmword [ebp - 0x1094]
mov dword [esi + 0x670], 1
mov dword [esi + 0x674], 2
movups xmmword [esi + 0x650], xmm0
push dword [esi + 0x2b0]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0x80
push dword [esi + 0x20]
call edi
push dword [esi + 0x2b0]
push 1
push 0x80
push dword [esi + 0x20]
call edi
push 0x24
push 0
push 0x1036
push dword [esi + 0xc8]
call edi
push 0x24
push 0
push 0x1036
push dword [esi + 0x148]
call edi
push 0x24
push 0
push 0x1036
push dword [esi + 0x1c8]
call edi
mov eax, dword [0x6184f8]
mov ecx, esi
push dword [eax + 0x2c]
call fcn.00558c38
mov eax, dword [esi]
mov edx, dword [eax + 0x1d0]
cmp eax, vtable.CBaseDlgPrinterSelectDirect.0
jne 0x4bcc00
push 0x800
lea eax, [ebp - 0x810]
push 0
push eax
call fcn.00571c00
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0x810]
add esp, 0xc
mov ecx, dword [ecx + 0x1c]
push eax
push str.SETPP
call fcn.004f65f0
mov ecx, 0x5c79bc
lea eax, [ebp - 0x810]
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4bc2f6
test dx, dx
je 0x4bc2f2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4bc2f6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4bc2d0
xor eax, eax
jmp 0x4bc2fb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4bc30f
push eax
push 1
push 0xf1
push dword [esi + 0x4e8]
call edi
xorps xmm0, xmm0
mov dword [esi + 0x7c0], 0
push 0
lea eax, [ebp - 0x1020]
movlpd qword [ebp - 0x1080], xmm0
push eax
movlpd qword [ebp - 0x1078], xmm0
movlpd qword [ebp - 0x106c], xmm0
movlpd qword [ebp - 0x1064], xmm0
mov dword [ebp - 0x105c], 0
mov dword [ebp - 0x1084], 0xf
call dword [sym.imp.USER32.dll_CopyRect]
lea eax, [ebp - 0x1020]
push eax
push dword [esi + 0xc8]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [0x60d7c8]
mov edi, esi
add eax, dword [0x60d7bc]
add eax, dword [0x60d7b0]
add eax, dword [0x60d7a4]
mov dword [ebp - 0x103c], eax
xor eax, eax
mov dword [ebp - 0x1024], eax
nop dword [eax]
mov dword [ebp - 0x1070], eax
call fcn.00550b4e
mov ecx, eax
test ecx, ecx
je 0x4bcc09
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x1034], esi
mov eax, dword [ebp - 0x1024]
mov dword [ebp - 4], 0
cmp eax, 3
ja case.default.0x4bc3db
jmp dword [eax*4 + 0x4bcc20]
push 0x89
call fcn.00551063
mov dword [ebp - 0x1028], eax
test eax, eax
je 0x4bc80f
push 6
push 9
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x1030], eax
test eax, eax
je 0x4bc80f
push eax
push dword [ebp - 0x1028]
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x4bc80f
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x4bc809
push dword [ebp - 0x1030]
push dword [ebp - 0x1028]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, 9
lea edx, [eax + edi]
cmp edi, edx
jae 0x4bc809
movzx eax, word [edi]
lea edi, [edi + eax*2]
add edi, 2
sub ecx, 1
jne 0x4bc453
cmp edi, edx
jae 0x4bc809
movzx eax, word [edi]
test ax, ax
je 0x4bc809
mov edx, eax
mov ecx, 1
mov eax, dword [esi - 8]
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
mov dword [ebp - 0x1028], edx
movzx edx, word [edi]
mov dword [ebp - 0x1030], edx
mov edx, dword [ebp - 0x1028]
jge 0x4bc7d3
push edx
lea ecx, [ebp - 0x1034]
call fcn.00403b50
movzx eax, word [edi]
mov esi, dword [ebp - 0x1034]
mov edx, dword [ebp - 0x1028]
jmp 0x4bc7d9
push 0x8a
call fcn.00551063
mov dword [ebp - 0x1028], eax
test eax, eax
je 0x4bc80f
push 6
push 9
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x1030], eax
test eax, eax
je 0x4bc80f
push eax
push dword [ebp - 0x1028]
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x4bc80f
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x4bc809
push dword [ebp - 0x1030]
push dword [ebp - 0x1028]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, 0xa
lea edx, [eax + edi]
nop word [eax + eax]
cmp edi, edx
jae 0x4bc809
movzx eax, word [edi]
lea edi, [edi + eax*2]
add edi, 2
sub ecx, 1
jne 0x4bc540
cmp edi, edx
jae 0x4bc809
movzx eax, word [edi]
test ax, ax
je 0x4bc809
mov edx, eax
mov ecx, 1
mov eax, dword [esi - 8]
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
mov dword [ebp - 0x1028], edx
movzx edx, word [edi]
mov dword [ebp - 0x1030], edx
mov edx, dword [ebp - 0x1028]
jge 0x4bc7d3
push edx
lea ecx, [ebp - 0x1034]
call fcn.00403b50
movzx eax, word [edi]
mov esi, dword [ebp - 0x1034]
mov edx, dword [ebp - 0x1028]
jmp 0x4bc7d9
push 0x8b
call fcn.00551063
mov dword [ebp - 0x1028], eax
test eax, eax
je 0x4bc80f
push 6
push 9
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x1030], eax
test eax, eax
je 0x4bc80f
push eax
push dword [ebp - 0x1028]
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x4bc80f
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x4bc809
push dword [ebp - 0x1030]
push dword [ebp - 0x1028]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, 0xb
lea edx, [eax + edi]
cmp edi, edx
jae 0x4bc809
movzx eax, word [edi]
lea edi, [edi + eax*2]
add edi, 2
sub ecx, 1
jne 0x4bc627
cmp edi, edx
jae 0x4bc809
movzx eax, word [edi]
test ax, ax
je 0x4bc809
mov edx, eax
mov ecx, 1
mov eax, dword [esi - 8]
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
mov dword [ebp - 0x1028], edx
movzx edx, word [edi]
mov dword [ebp - 0x1030], edx
mov edx, dword [ebp - 0x1028]
jge 0x4bc7d3
push edx
lea ecx, [ebp - 0x1034]
call fcn.00403b50
movzx eax, word [edi]
mov esi, dword [ebp - 0x1034]
mov edx, dword [ebp - 0x1028]
jmp 0x4bc7d9
push 0x8c
call fcn.00551063
mov dword [ebp - 0x1028], eax
test eax, eax
je 0x4bc80f
push 6
push 9
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x1030], eax
test eax, eax
je 0x4bc80f
push eax
push dword [ebp - 0x1028]
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x4bc80f
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x4bc809
push dword [ebp - 0x1030]
push dword [ebp - 0x1028]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0x1028], 0xc
lea ecx, [eax + edi]
cmp edi, ecx
jae 0x4bc809
movzx edx, word [edi]
inc edx
lea edx, [edi + edx*2]
cmp edx, ecx
jae 0x4bc809
movzx eax, word [edx]
lea edx, [edx + eax*2]
add edx, 2
cmp edx, ecx
jae 0x4bc809
movzx eax, word [edx]
lea edx, [edx + eax*2]
add edx, 2
cmp edx, ecx
jae 0x4bc809
movzx eax, word [edx]
lea edx, [edx + eax*2]
add edx, 2
cmp edx, ecx
jae 0x4bc809
movzx eax, word [edx]
lea edx, [edx + eax*2]
add edx, 2
cmp edx, ecx
jae 0x4bc809
movzx edi, word [edx]
inc edi
sub dword [ebp - 0x1028], 6
lea edi, [edx + edi*2]
jne 0x4bc713
cmp edi, ecx
jae 0x4bc809
movzx eax, word [edi]
test ax, ax
je 0x4bc809
mov edx, eax
mov ecx, 1
mov eax, dword [esi - 8]
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
mov dword [ebp - 0x1028], edx
movzx edx, word [edi]
mov dword [ebp - 0x1030], edx
mov edx, dword [ebp - 0x1028]
jge 0x4bc7d3
push edx
lea ecx, [ebp - 0x1034]
call fcn.00403b50
movzx eax, word [edi]
mov esi, dword [ebp - 0x1034]
mov edx, dword [ebp - 0x1028]
jmp 0x4bc7d9
mov eax, dword [ebp - 0x1030]
movzx ecx, ax
lea eax, [edi + 2]
push ecx
push eax
push edx
push esi
call fcn.0057455e
push eax
call fcn.004012e0
mov eax, dword [ebp - 0x1028]
add esp, 0x14
cmp eax, dword [esi - 8]
jg 0x4bcc13
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
mov edi, dword [ebp - 0x102c]
mov eax, dword [ebp - 0x1024]
lea ecx, [eax + eax*2]
mov dword [ebp - 0x1078], esi
mov eax, dword [ebp - 0x1018]
sub eax, dword [ebp - 0x1020]
imul eax, dword [ecx*4 + 0x60d7a4]
cdq
idiv dword [ebp - 0x103c]
mov dword [ebp - 0x107c], eax
mov eax, dword [ecx*4 + 0x60d7a0]
mov dword [ebp - 0x1080], eax
lea eax, [ebp - 0x1084]
push eax
push dword [ebp - 0x1024]
push 0x1061
push dword [edi + 0xc8]
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebp - 0x1084]
push eax
push dword [ebp - 0x1024]
push 0x1061
push dword [edi + 0x148]
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebp - 0x1084]
push eax
push dword [ebp - 0x1024]
push 0x1061
push dword [edi + 0x1c8]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4bc8c5
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x1024]
inc eax
mov dword [ebp - 0x1024], eax
cmp eax, 4
jb 0x4bc3a0
push 1
lea ecx, [edi + 0xa8]
call fcn.00558c8a
push 0
lea ecx, [edi + 0x128]
call fcn.00558c8a
push 0
lea ecx, [edi + 0x1a8]
call fcn.00558c8a
cmp dword [edi + 0x7c4], 0
jne 0x4bc918
push 0
lea ecx, [edi + 0x1a8]
call fcn.005587e1
call fcn.00550b4e
mov ecx, eax
test ecx, ecx
je 0x4bcc09
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1034], eax
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x1034]
xorps xmm0, xmm0
mov dword [ebp - 0x1058], 1
xor eax, eax
movlpd qword [ebp - 0x1054], xmm0
push 0x259
movlpd qword [ebp - 0x104c], xmm0
movlpd qword [ebp - 0x1044], xmm0
mov dword [ebp - 0x1024], eax
call fcn.00403020
mov esi, dword [ebp - 0x1034]
lea eax, [ebp - 0x1058]
push eax
push 0
push 0x133e
push dword [edi + 0x250]
mov dword [ebp - 0x104c], esi
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [ebp - 0x1030]
call fcn.00437ff0
lea ecx, [ebp - 0x1030]
mov byte [ebp - 4], 2
call fcn.0043ddf0
test al, al
je 0x4bc9ff
push 0x25a
lea ecx, [ebp - 0x1034]
mov dword [ebp - 0x1024], 1
call fcn.00403020
mov esi, dword [ebp - 0x1034]
lea eax, [ebp - 0x1058]
push eax
push 1
push 0x133e
push dword [edi + 0x250]
mov dword [ebp - 0x104c], esi
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [edi + 0x7c4], 0
je 0x4bca49
inc dword [ebp - 0x1024]
lea ecx, [ebp - 0x1034]
push 0x25b
call fcn.00403020
mov esi, dword [ebp - 0x1034]
lea eax, [ebp - 0x1058]
push eax
mov eax, dword [ebp - 0x1024]
push eax
push 0x133e
push dword [edi + 0x250]
mov dword [ebp - 0x104c], esi
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [0x6184f8]
push 0
mov dword [ebp - 0x1038], 0
push dword [eax + 0x1c]
push 0x130c
push dword [edi + 0x250]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [0x6184f8]
lea edx, [edi + 0x71c]
lea eax, [ecx + 0x6c]
cmp edx, eax
je 0x4bca9f
push dword [ebp - 0x1038]
mov ecx, edx
push dword [eax + 4]
push dword [eax]
call fcn.004c1ee0
mov ecx, dword [0x6184f8]
lea edx, [edi + 0x71c]
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
jne 0x4bcab6
mov eax, dword [ecx + 0x10]
cmp eax, dword [ecx + 0x14]
jne 0x4bcab6
mov eax, dword [edx]
cmp eax, dword [edx + 4]
je 0x4bcac0
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x1d4]
push 0x800
lea eax, [ebp - 0x1010]
push 0
push eax
call fcn.00571c00
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0x1010]
add esp, 0xc
mov ecx, dword [ecx + 0x1c]
push eax
push str.IPManualSetSearch
call fcn.004f65f0
push 0x5ca984
lea eax, [ebp - 0x1010]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
lea ecx, [edi + 0x740]
test eax, eax
jne 0x4bcb17
push 5
call fcn.00558c8a
push 1
jmp 0x4bcb20
push 0
call fcn.00558c8a
push 0
lea ecx, [edi + 0x740]
call fcn.005587e1
mov eax, dword [0x6184f8]
mov edi, dword [ebp - 0x102c]
cmp dword [eax + 0x3c], 1
jne 0x4bcb48
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x1d4]
jmp 0x4bcb57
push 0
push 0x64
push 1
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SetTimer]
lea eax, [ebp - 0x1038]
mov ecx, edi
push eax
mov eax, dword [edi]
push 0
call dword [eax + 0x1fc]
lea ecx, [ebp - 0x1028]
call fcn.0046a2f0
lea ecx, [ebp - 0x1028]
mov byte [ebp - 4], 3
call fcn.0046a4b0
mov ecx, dword [0x6184f8]
push edi
call fcn.004b5b40
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_UpdateWindow]
lea ecx, [ebp - 0x1028]
call fcn.0046a3c0
lea ecx, [ebp - 0x1030]
call fcn.004380c0
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4bcbd7
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
add byte [ecx + 0x5f], bl
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0056d977
mov esp, ebp
pop ebp
ret
mov ecx, esi
call edx
jmp 0x4bc20f
mov ecx, esi
call edx
jmp 0x4bc30f
push 0x80004005
call fcn.004013a0
push 0x80070057
call fcn.004013a0
nop dword [eax]
loop 0x4bcbe5
dec ebx
add cl, cl
les ecx, [ebx]
mov dh, 0xc5
dec ebx
add byte [ebp - 0x74ffb43a], bl
or eax, 0x618418
test ecx, ecx
je 0x4bcc42
mov eax, dword [ecx]
call dword [eax + 0x1bc]
xor eax, eax
ret