Function at 0x100393c3
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov eax, 0x10075ae5
call fcn.10074990
sub esp, 0xd0
push ebx
mov ebx, ecx
mov dword [ebp - 0x44], edx
xor ecx, ecx
mov dword [ebp - 0x28], ebx
cmp dword [ebx + 0x10], ecx
jne 0x100393ea
xor al, al
jmp 0x10039cde
mov dword [ebp - 0x24], 0x76b0f738
xor edx, edx
mov dword [ebp - 0x24], 0xfffffffc
inc edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x24], 0x9cfe0482
mov dword [ebp - 0x24], 0x849f845
mov dword [ebp - 0x24], 0xfffffff8
mov dword [ebp - 0x24], 0xdedb5cab
push esi
mov dword [ebp - 0x24], 0xdd44ad37
mov dword [ebp - 0x24], 0xcafe8b0d
push 0xfffffffffffffffa
mov dword [ebp - 0x24], ecx
pop esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
jmp 0x10039447
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xbc], esi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edx
jl 0x1003943a
dec dword [ebp - 0x20]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x24], 0xfffe
mov byte [ebp - 0xd], cl
cmp byte [ebp - 0xd], cl
je 0x1003947a
push 0x15b2
push 0x1354
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetClassLongA]
xor ecx, ecx
mov byte [ebp - 0xd], cl
cmp byte [ebp - 0xd], 0
je 0x10039497
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SaveDC]
push edi
push 3
lea ecx, [ebp - 0x60]
call fcn.10011c05
xor edx, edx
mov dword [ebp - 4], edx
mov dword [ebp - 0x24], 6
push 2
mov dword [ebp - 0x18], 0xffff
mov dword [ebp - 0x1c], edx
pop edi
jmp 0x100394ce
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xd0], 0xfffffffb
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x100394bd
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], dl
je 0x100394e6
push edx
push edx
push edx
call dword [sym.imp.OLEAUT32.dll_SysStringByteLen]
xor edx, edx
cmp dword [ebp - 0x18], edx
je 0x1003951a
mov dword [ebp - 0x18], edx
jmp 0x10039501
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xd0], 0x51d69f42
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x100394f0
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x10039536
push edx
push edx
push edx
call dword [sym.imp.USER32.dll_UnionRect]
jmp 0x10039534
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x10039536
push 0xe00
push 0x2221
push edx
call dword [sym.imp.USER32.dll_DeleteMenu]
xor edx, edx
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x20], 0xfffffff7
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x20], 0x7d69fdb8
mov dword [ebp - 0x18], edx
jmp 0x10039565
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x38], 0xb969
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x10039557
mov dword [ebp - 0x18], edx
jmp 0x1003957c
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x60]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10039570
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x10039594
push edx
call fcn.1003c43e
pop ecx
xor edx, edx
cmp dword [ebp - 0x14], edx
jne 0x1003960d
mov eax, dword [ebp - 0x14]
xor ebx, ebx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
mov eax, dword [ebp - 0x60]
setg bl
sub ebx, dword [eax + 4]
mov eax, dword [ebp - 0x38]
neg ebx
sbb ebx, ebx
xor edx, edx
neg ebx
cmp ebx, eax
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x28]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x60]
setl cl
xor edx, edx
mov dword [ebp - 0x20], ecx
mov esi, dword [eax + 8]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
setne dl
xor ecx, ecx
cmp edx, esi
setne cl
xor eax, eax
cmp ecx, esi
setge al
xor edx, edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x14]
cmp eax, 0xf806
jg 0x1003961d
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x60]
cmp dword [eax + 8], edx
setle cl
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x60]
or dword [ebp - 4], 0xffffffff
call fcn.10011e3c
push 4
lea ecx, [ebp - 0x7c]
call fcn.10011c05
xor edx, edx
mov dword [ebp - 0x1c], 8
xor esi, esi
mov dword [ebp - 0x1c], edx
inc esi
cmp dword [ebp - 0x1c], 4
jge 0x1003966d
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x7c]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x1c]
jmp 0x10039659
mov eax, dword [ebp - 0x7c]
inc dword [eax + 8]
mov dword [ebp - 0x1c], 3
cmp dword [ebp - 0x1c], edx
jl 0x100396a8
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x10039698
push edx
push edx
push 0x1c1f
push edx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
xor edx, edx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x7c]
cmp dword [eax + ecx*4], edx
jne 0x100396a8
dec dword [ebp - 0x1c]
jns 0x1003967f
lea ecx, [ebp - 0x7c]
call fcn.10011e3c
push 0
lea eax, [ebp - 0x44]
push eax
push 0x31e0
push 0x3aff
call fcn.10039d2b
add esp, 0x10
mov dword [ebp - 0x14], 0xa7084bc
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x94]
push esi
call fcn.10011c05
xor edx, edx
mov dword [ebp - 0x28], 0xf76ec751
mov dword [ebp - 0x1c], edx
jmp 0x10039700
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x94]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x100396f0
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], dl
je 0x10039715
push edx
push edx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov eax, dword [ebp - 0x94]
lea ecx, [ebp - 0x94]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
call fcn.10011e3c
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp eax, 0xd9ba
push 3
setge dl
xor ecx, ecx
sub edx, dword [ebp - 0x14]
imul edx, dword [ebp - 0x14]
imul eax, dword [ebp - 0x14], 0xa7b7
sub edx, 0x7552
cmp eax, edx
setle cl
add ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
add eax, 0x32bf677c
add eax, ecx
lea ecx, [ebp - 0xac]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x20], 0xfffffff8
call fcn.10011c05
xor edx, edx
mov dword [ebp - 0x14], edx
jmp 0x10039798
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xac]
mov dword [eax + ecx*4], 0xffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10039785
mov dword [ebp - 0x14], edx
jmp 0x100397b4
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xb4], 0xa7974498
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x100397a3
cmp dword [ebp - 0x18], edx
jne 0x1003982e
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, 0xd8ea5f34
mov eax, 0xffff0008
setne cl
sub eax, ecx
add eax, dword [ebp - 0x18]
jne 0x100397e2
cmp dword [ebp - 0x18], edx
je 0x100397e9
mov eax, esi
cmp dword [ebp - 0x20], edx
jne 0x100397eb
mov eax, edx
imul eax, eax, 0x1ae9
xor ecx, ecx
cmp eax, 0x498
mov eax, dword [ebp - 0x20]
setg cl
add ecx, 0xd8ff
cmp ecx, 0xffff
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setl cl
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0xac]
mov eax, dword [ebp - 0x18]
sub eax, dword [ecx + 8]
cmp eax, 0xcd95ff79
jb 0x1003982e
xor eax, eax
jmp 0x10039830
mov eax, esi
mov dword [ebp - 0xb4], eax
lea ecx, [ebp - 0xac]
call fcn.10011e3c
mov dword [ebp - 0x3c], 0x3eca
mov dword [ebp - 0x1c], 0
jmp 0x10039862
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xdc], 0xffffffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x10039851
push 0x3e03
lea eax, [ebp - 0x3c]
push eax
push 0
push 0x1f62
call fcn.1003ac2f
add esp, 0x10
xor edx, edx
mov dword [ebp - 0x3c], edx
jmp 0x100398db
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x14], edi
cmp dword [ebp - 0x14], edx
jl 0x100398b9
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x100398b4
push 0x370b
push 0x1ffe
push edx
call fcn.1003aca2
add esp, 0xc
xor edx, edx
dec dword [ebp - 0x14]
jns 0x10039896
mov dword [ebp - 0x14], edi
cmp dword [ebp - 0x14], edx
jl 0x100398d8
lea eax, [ebp - 0x32]
mov byte [ebp - 0x32], dl
push eax
push edx
call fcn.1003ae5f
dec dword [ebp - 0x14]
pop ecx
pop ecx
push 0
pop edx
jns 0x100398c1
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], edi
jle 0x10039887
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], edx
jmp 0x100398f2
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x40], edx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 1
jl 0x100398e8
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], edx
jl 0x10039918
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x10039913
push edx
push edx
call dword [sym.imp.USER32.dll_LoadCursorA]
xor edx, edx
dec dword [ebp - 0x18]
jns 0x10039900
mov dword [ebp - 0x18], 0xffffffe7
jmp 0x10039966
mov dword [ebp - 0x14], 0xb9ae77ab
mov dword [ebp - 0x14], edx
jmp 0x1003995e
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x40], edx
jne 0x10039963
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov edx, dword [ebp + eax*4 - 0x40]
add edx, dword [ebp - 0x14]
imul edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x40]
cmp eax, edx
mov eax, dword [ebp - 0x14]
setle cl
mov dword [ebp + eax*4 - 0x40], ecx
inc dword [ebp - 0x14]
xor edx, edx
cmp dword [ebp - 0x14], edx
jle 0x1003992d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x14
jl 0x10039921
cmp dword [ebx + 0x14], 0x10
jb 0x10039976
mov esi, dword [ebx]
jmp 0x10039978
mov esi, ebx
cmp dword [ebx + 0x14], 0x10
jb 0x10039982
mov ecx, dword [ebx]
jmp 0x10039984
mov ecx, ebx
mov eax, dword [ebx + 0x10]
add eax, ecx
cmp esi, eax
je 0x10039b20
push 8
pop ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x30], 0xfffffffd
mov dword [ebp - 0x54], 0x911a
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], edx
je 0x10039a23
lea eax, [ebp - 0x31]
mov dword [ebp - 0x14], ecx
push eax
mov dword [ebp - 0x28], 0xefcdf11b
push 0x474
mov dword [ebp - 0x28], 4
mov byte [ebp - 0x31], dl
push edx
call fcn.1003ab66
mov eax, dword [ebp - 0x30]
add esp, 0xc
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x30]
imul ecx, eax
mov eax, dword [ebp - 0x30]
push 2
sub edi, ecx
neg edi
sbb edi, edi
xor edx, edx
inc edi
cmp eax, 0x5ed9a924
mov eax, dword [ebp - 0x14]
setg dl
add eax, edi
xor ecx, ecx
cmp edx, eax
pop edi
setg cl
mov dword [ebp - 0x28], ecx
mov ecx, 0x16c9418
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
sub ecx, eax
mov dword [ebp - 0x28], ecx
jmp 0x10039a71
push 0x4c82
push edx
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x48], 0x50bb
push eax
mov dword [ebp - 0x4c], edi
lea eax, [ebp - 0x48]
mov dword [ebp - 0x64], edx
push eax
mov dword [ebp - 0x70], 7
call fcn.1004090f
push 0x7694
lea eax, [ebp - 0x70]
push eax
push 0
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.1003b713
add esp, 0x30
mov al, byte [esi]
cmp al, 0x30
jl 0x10039a93
cmp al, 0x39
jg 0x10039a93
mov edx, dword [ebp - 0x44]
movsx eax, al
imul ecx, dword [edx], 0xa
add ecx, 0xffffffd0
add eax, ecx
inc esi
mov dword [edx], eax
xor edx, edx
jmp 0x10039978
push edi
lea ecx, [ebp - 0xc8]
call fcn.10011c05
lea eax, [ebp - 0xc8]
xor ebx, ebx
push eax
push 0xfea
push 0
lea eax, [ebp - 0xb8]
inc ebx
push eax
mov dword [ebp - 4], ebx
mov dword [ebp - 0x1c], 0x5c8094a
push 0x1f4
call fcn.1003aabf
add esp, 0x14
mov dword [ebp - 0x1c], 0
jmp 0x10039ae8
push 0x707f
push 0
call fcn.1003c3d8
inc dword [ebp - 0x1c]
pop ecx
pop ecx
cmp dword [ebp - 0x1c], ebx
jle 0x10039ad7
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc8]
call fcn.10011e3c
lea eax, [ebp - 0x44]
push eax
push 0
push 0x5f18
push 0x25a6
push 0x33dc
call fcn.1003b0f1
add esp, 0x14
xor al, al
jmp 0x10039cdc
mov dword [ebp - 0x20], 0xeee2
lea ecx, [ebp - 0xa0]
push 3
xor eax, eax
mov dword [ebp - 0x1c], 0x7f39
inc eax
mov dword [ebp - 0x2c], 0xa8db8846
pop esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x28], eax
push esi
call fcn.10011c05
xor ebx, ebx
mov dword [ebp - 0x14], ebx
jmp 0x10039b62
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6c], 0xbef7d651
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10039b54
mov dword [ebp - 0x14], ebx
jmp 0x10039b7f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xa0]
mov dword [eax + ecx*4], 0x8d58945c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10039b6c
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
dec dword [ebp - 0x2c]
cmp ecx, eax
je 0x10039bc4
mov eax, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
setg dl
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x20]
neg eax
cmp eax, dword [ebp - 0x1c]
jl 0x10039bc7
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x68], ecx
mov dword [eax + 4], ecx
mov dword [ebp - 0x18], ebx
jmp 0x10039be9
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x6c], 0x9aeb9d37
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x10039bdb
lea ecx, [ebp - 0xa0]
call fcn.10011e3c
mov dword [ebp - 0x18], 9
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x20], 5
push esi
call fcn.10011c05
mov dword [ebp - 0x14], ebx
jmp 0x10039c26
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x50], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x10039c18
mov dword [ebp - 0x14], ebx
jmp 0x10039c40
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x88]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10039c31
mov dword [ebp - 0x20], ebx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x18]
je 0x10039c63
cmp dword [ebp - 0x50], ebx
je 0x10039c63
xor ecx, ecx
inc ecx
jmp 0x10039c65
mov ecx, ebx
mov eax, dword [ebp - 0x18]
xor edx, edx
mov esi, dword [ebp - 0x88]
add ecx, 3
cmp ecx, eax
setne dl
mov dword [esi + 8], edx
mov dword [ebp - 0x18], ebx
jmp 0x10039cca
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax + ecx*4]
sub ecx, dword [eax + edx*4]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [ebp - 0x18]
jl 0x10039c9f
mov eax, dword [ebp - 0x18]
xor eax, eax
cmp dword [esi + 8], ebx
setl al
mov dword [esi + 8], eax
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10039cc7
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetWindowOrgEx]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jle 0x10039c80
lea ecx, [ebp - 0x88]
call fcn.10011e3c
mov al, 1
pop edi
pop esi
mov ecx, dword [ebp - 0xc]
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret