Function at 0x10041b50
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x13c
mov eax, dword [0x10098070]
xor eax, esp
mov dword [esp + 0x138], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov dword [esp + 0x2c], ebx
lea eax, [esi + 0x3f7]
mov dword [esp + 0x10], eax
cmp esi, eax
mov al, byte [esp + 0xf]
ja 0x10041f81
mov edi, dword [sym.imp.GDI32.dll_GetEnhMetaFileHeader]
mov edx, 0x6c
mov ecx, dword [esp + 0x10]
mov byte [esp + 0xf], al
cmp esi, 0x2f73
ja 0x10041e2e
je 0x10041e15
cmp esi, 0x81a
ja 0x10041d21
je 0x10041d12
lea eax, [esi - 0x74f]
cmp eax, 0xae
ja case.0x10041e58.12177
movzx eax, byte [eax + 0x10042400]
jmp dword [eax*4 + 0x100423e0]
xor eax, eax
push 4
mov word [esp + 0x11c], ax
lea eax, [esp + 0x11c]
push 0x10090f54
push eax
call fcn.1006db47
add esp, 0xc
mov dword [esp + 0x120], 0x6c0065
jmp 0x10042397
push 3
lea eax, [esp + 0x12c]
push 0x10091072
push eax
call fcn.1006fe81
add esp, 0xc
jmp 0x10042397
push 0x1009107c
lea eax, [esp + 0x100]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov ax, word [0x10091080]
mov word [esp + 0x102], ax
movzx eax, byte [0x10091082]
mov byte [esp + 0x104], al
lea eax, [esp + 0x104]
push 0x10091084
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x10042397
mov ax, word [0x10091088]
lea edi, [esp + 0xfc]
mov word [esp + 0xfc], ax
dec edi
mov al, byte [0x1009108a]
mov byte [esp + 0xfe], al
nop dword [eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x10041ca0
mov ax, word [0x1008e488]
mov word [edi], ax
mov edi, dword [sym.imp.GDI32.dll_GetEnhMetaFileHeader]
jmp case.0x10041e58.12177
xor eax, eax
push 2
mov word [esp + 0x128], ax
lea eax, [esp + 0x128]
push 0x100910ca
push eax
call fcn.1006fe81
add esp, 0xc
xor eax, eax
mov word [esp + 0x128], ax
jmp 0x10042397
mov eax, 0x74
mov word [esp + 0xff], ax
jmp case.0x10041e58.12177
mov eax, 0x65
mov word [esp + 0x106], ax
jmp case.0x10041e58.12177
xor eax, eax
mov word [esp + 0x12e], ax
jmp case.0x10041e58.12177
cmp esi, 0x88e
ja 0x10041de8
je 0x10041dc7
mov eax, esi
sub eax, 0x837
je 0x10041db1
sub eax, 0x1d
je 0x10041d9c
sub eax, 0x1d
jne case.0x10041e58.12177
push 0x5bd5
lea eax, [esp + 0x11c]
push eax
lea eax, [esp + 0x104]
push eax
call fcn.10005f70
add esp, 0xc
mov dword [esp + 0x44], 5
cmp byte [ebx + 0xe4], 0
je 0x10041d8c
push 0x8000
push 0
push dword [ebx + 0xe0]
call eax
jmp 0x10042397
push dword [ebx + 0xe0]
call fcn.1006db8c
jmp 0x10042394
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
jmp case.0x10041e58.12177
xor eax, eax
mov dword [esp + 0x12e], 0x6c
mov dword [esp + 0x50], eax
jmp case.0x10041e58.12177
push dword [esp + 0x44]
push dword [esp + 0x4c]
push dword [esp + 0x54]
push dword [esp + 0x5c]
call dword [sym.imp.GDI32.dll_CombineRgn]
push ebx
call fcn.1006db8c
jmp 0x10042394
mov eax, esi
sub eax, 0x2f39
je 0x10041e08
sub eax, 0x1d
mov al, byte [esp + 0xf]
jne 0x100423a4
mov byte [esp + 0x38], 0x65
jmp 0x100423a4
mov dword [esp + 0x34], 0x68747541
jmp case.0x10041e58.12177
mov eax, dword [0x10090ede]
mov dword [esp + 0x39], eax
movzx eax, byte [0x10090ee2]
mov byte [esp + 0x3d], al
jmp case.0x10041e58.12177
cmp esi, 0x303e
ja 0x100421ef
je 0x100421e4
lea eax, [esi - 0x2f90]
cmp eax, 0x91
ja case.0x10041e58.12177
movzx eax, byte [eax + 0x100424cc]
jmp dword [eax*4 + 0x100424b0]
push 0xd
lea eax, [esp + 0x138]
mov dword [ebx], 0
push eax
lea eax, [esp + 0x110]
mov dword [esp + 0x144], 0
xorps xmm0, xmm0
mov byte [esp + 0x148], 0
push eax
movq qword [esp + 0x140], xmm0
call fcn.10069cf0
add esp, 0xc
jmp 0x10042397
mov byte [esp + 0x3f], 0x44
jmp case.0x10041e58.12177
lea eax, [esp + 0x24]
mov dword [esp + 0x28], 0
push eax
lea eax, [esp + 0xf0]
mov dword [esp + 0x28], 0
push eax
lea eax, [esp + 0x30]
push eax
push 0x325b
call fcn.1002b6e0
mov eax, dword [esp + 0x100]
add esp, 0x10
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x10c], eax
jmp 0x10042397
mov byte [esp + 0x40], 0
jmp case.0x10041e58.12177
mov byte [esp + 0x3e], 0x4d
jmp case.0x10041e58.12177
mov eax, dword [esp + 0xf4]
mov ecx, str.GenuineIntel
mov dword [esp + 0x110], eax
lea eax, [esp + 0x108]
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10041f50
test dl, dl
je 0x10041f4c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10041f50
add eax, 2
add ecx, 2
test dl, dl
jne 0x10041f30
xor eax, eax
jmp 0x10041f55
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100420f4
mov ebx, 0x41b
mov eax, ebx
sub eax, 0x41b
je 0x10042067
sub eax, 0x53
je 0x10041f96
sub eax, 0x53
jne 0x100420d3
mov al, byte [esp + 0xf]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x138]
xor ecx, esp
call fcn.100685c5
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x28]
mov dword [esp + 0x2c], 0x16
push eax
lea eax, [esp + 0x5c]
mov dword [esp + 0x5c], 0x1f
push eax
push 0x150f
call fcn.10041730
mov dword [esp + 0x68], 0xc
mov dword [esp + 0x70], 0x15
lea edi, [eax + 1]
mov eax, dword [esp + 0x100]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x78]
push eax
push 0x150f
call fcn.10041730
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0xb
lea esi, [eax + 1]
mov eax, dword [esp + 0x110]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x40]
push eax
push 0x150f
call fcn.10041730
mov ecx, dword [esp + 0x124]
inc eax
inc ecx
add esp, 0x30
imul eax, ecx
mov ecx, dword [esp + 0x2c]
imul eax, esi
imul eax, edi
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
mov dword [ecx], eax
mov al, 1
mov byte [esp + 0xf], al
jmp 0x100420d3
lea eax, [esp + 0x18]
mov dword [esp + 0x14], 3
push eax
lea eax, [esp + 0xf0]
mov dword [esp + 0x1c], 4
push eax
lea eax, [esp + 0x1c]
push eax
push 0x325b
call fcn.1002b6e0
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x28]
mov dword [esp + 0x2c], 5
push eax
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 7
push eax
push 0x150f
call fcn.10041730
add esp, 0x20
cmp eax, 3
jne 0x100423c7
add ebx, 0x53
cmp ebx, 0x4c1
jbe 0x10041f62
mov ebx, dword [esp + 0x2c]
mov esi, dword [ebp + 0xc]
mov edi, dword [sym.imp.GDI32.dll_GetEnhMetaFileHeader]
jmp 0x10042397
lea ecx, [esp + 0x34]
lea eax, [esp + 0x108]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10042120
test dl, dl
je 0x1004211c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10042120
add eax, 2
add ecx, 2
test dl, dl
jne 0x10042100
xor eax, eax
jmp 0x10042125
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10042397
mov esi, 0x575b
mov eax, esi
sub eax, 0x575b
je 0x1004219e
sub eax, 0x21
je 0x10042160
sub eax, 0x21
jne 0x100421cd
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x138]
xor ecx, esp
call fcn.100685c5
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x18]
mov dword [esp + 0x1c], 0x12
push eax
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0x1f
push eax
push 0x150f
call fcn.10041730
add esp, 0x10
shl eax, 9
mov dword [ebx], eax
jmp 0x100421cd
lea eax, [esp + 0x18]
mov dword [esp + 0x14], 0
push eax
lea eax, [esp + 0xf0]
mov dword [esp + 0x1c], 0x80000006
push eax
lea eax, [esp + 0x1c]
push eax
push 0x325b
call fcn.1002b6e0
add esp, 0x10
add esi, 0x21
cmp esi, 0x579d
jbe 0x10042132
mov esi, dword [ebp + 0xc]
jmp 0x10042397
xor al, al
mov byte [esp + 0xf], al
jmp 0x100423a4
cmp esi, 0x4012
ja 0x10042361
je 0x10042310
mov eax, esi
sub eax, 0x305b
je 0x10041f7d
sub eax, 0xf7d
je 0x10042302
sub eax, 0x1d
jne case.0x10041e58.12177
push dword [esp + 0x74]
push dword [esp + 0x74]
call dword [sym.imp.USER32.dll_WindowFromPoint]
mov edx, dword [ebx]
mov dword [esp + 0x30], eax
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x100422d9
mov edx, dword [edx + 8]
test edx, edx
je 0x1004225b
mov dword [ecx + 8], edx
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
jmp 0x100422e9
test ecx, ecx
je 0x100422d9
mov esi, 0xd74
nop dword [eax + eax]
mov eax, esi
sub eax, 0xd74
je 0x100422b2
sub eax, 0x46
je 0x100422a0
sub eax, 0x46
jne 0x100422cb
lea eax, [esp + 0x78]
push eax
push dword [esp + 0x68]
push dword [esp + 0x70]
call edi
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
mov dword [eax + 8], 0
jmp 0x100422cb
mov dword [esp + 0x7c], 0x6c
mov dword [esp + 0x64], 0x6c
jmp 0x100422cb
push 0x6c
lea eax, [esp + 0x7c]
mov dword [esp + 0x6c], 0
push 0
push eax
call fcn.1006cf60
add esp, 0xc
add esi, 0x46
cmp esi, 0xe00
jbe 0x10042270
mov esi, dword [ebp + 0xc]
mov eax, dword [ebx]
mov eax, dword [eax + 8]
test eax, eax
je 0x100422e9
mov dword [eax + 0xc], 0
push dword [esp + 0x30]
call dword [sym.imp.USER32.dll_GetDC]
mov edi, dword [sym.imp.GDI32.dll_GetEnhMetaFileHeader]
mov dword [esp + 0x20], eax
jmp 0x10042397
xorps xmm0, xmm0
movq qword [esp + 0x70], xmm0
jmp case.0x10041e58.12177
mov eax, dword [ebx]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x10042334
cmp dword [ecx + 0x14], eax
jne 0x10042324
mov eax, dword [eax + 8]
mov dword [ecx + 0x14], eax
mov eax, dword [ebx]
mov ecx, dword [eax + 0x10]
cmp dword [ecx + 0x18], eax
jne 0x10042334
mov eax, dword [eax + 0xc]
mov dword [ecx + 0x18], eax
mov edi, dword [esp + 0x20]
test edi, edi
je 0x1004234f
push edi
push dword [esp + 0x34]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov dword [esp + 0x20], 0
mov eax, dword [ebx]
push dword [eax + 4]
call fcn.10070555
mov edi, dword [sym.imp.GDI32.dll_GetEnhMetaFileHeader]
jmp 0x10042394
mov eax, esi
sub eax, 0x402f
je 0x10042385
sub eax, 0x1d
jne case.0x10041e58.12177
push dword [esp + 0x6c]
push dword [esp + 0x24]
call dword [sym.imp.GDI32.dll_SetICMMode]
mov dword [ebx], 0
jmp 0x10042397
push dword [ebx]
mov dword [esp + 0x70], 3
call fcn.10070555
add esp, 4
mov ecx, dword [esp + 0x10]
mov edx, 0x6c
mov al, byte [esp + 0xf]
add esi, 0x1d
mov dword [ebp + 0xc], esi
cmp esi, ecx
jbe 0x10041ba0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x138]
xor ecx, esp
call fcn.100685c5
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x144]
xor al, al
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100685c5
mov esp, ebp
pop ebp
ret