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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1008b2f1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x150
push ebx
push esi
push edi
mov dword [esp + 0x40], edx
mov esi, ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x14], 0xba394643
mov dword [esp + 0x1c], 0xa622a149
mov dword [esp + 0x1c], 0x672ca3c0
mov dword [esp + 0x1c], 8
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x1c], 0xd658edfe
mov dword [esp + 0x1c], 0x87a7525d
mov dword [esp + 0x1c], 0x9cf13e13
mov dword [esp + 0x1c], 0xfffffffa
mov dword [esp + 0x1c], 0xfffffff9
lea ecx, [esp + 0xdc]
mov dword [esp + 0x1c], 0xfffffff7
mov dword [esp + 0x1c], 0xa165018
mov dword [esp + 0x1c], 0x28405cef
push 3
call fcn.10018e8a
mov dword [esp + 0x1c], 1
xor ebx, ebx
mov dword [esp + 0x1c], 0x16488a97
push 3
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x14], ebx
pop edx
cmp dword [esp + 0x10], 4
jge 0x1001c49f
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x148], edx
inc dword [esp + 0x10]
jmp 0x1001c487
mov dword [esp + 0x10], ebx
jmp 0x1001c4bb
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xdc]
mov dword [eax + ecx*4], 0x64f6cbcb
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001c4a5
mov dword [esp + 0x14], edx
cmp dword [esp + 0x14], ebx
jl 0x1001c4f5
mov dword [esp + 0x18], 0x9609c3fb
inc dword [esp + 0x18]
mov byte [esp + 0x27], bl
cmp byte [esp + 0x27], bl
je 0x1001c4ef
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_ClientToScreen]
dec dword [esp + 0x14]
jns 0x1001c4cb
dec dword [esp + 0x28]
lea ecx, [esp + 0xdc]
call fcn.10018f0c
mov dword [esp + 0x14], ebx
xor ecx, ecx
mov dword [esp + 0x18], 0xfffffffb
inc ecx
push 3
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x14], ebx
pop edx
jmp 0x1001c530
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xc8], ecx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001c521
mov dword [esp + 0x10], ebx
jmp 0x1001c54b
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xe8], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001c53c
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x14], 0x14
jge 0x1001c692
push 2
lea ecx, [esp + 0xb4]
call fcn.10018e8a
push 3
lea ecx, [esp + 0xa8]
mov dword [esp + 0x168], ebx
call fcn.10018e8a
mov byte [esp + 0x164], 1
mov dword [esp + 0x10], ebx
jmp 0x1001c5a7
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xb0]
mov dword [eax + ecx*4], 1
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1001c591
mov dword [esp + 0x10], ebx
jmp 0x1001c5ca
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xa4]
mov dword [eax + ecx*4], 0x166941fc
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1001c5b4
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xa4]
mov dword [esi + 4], 0xffffffe7
push 1
lea ecx, [esp + 0xc0]
call fcn.10018e8a
mov dword [esp + 0x10], ebx
jmp 0x1001c610
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xbc]
mov dword [eax + ecx*4], 0xd7d393e7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x1001c5fa
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc8], eax
add eax, 0xffffab43
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
imul eax, dword [esp + 0x14]
cmp eax, 0xddd9cd44
mov eax, dword [esp + 0xbc]
sbb ecx, ecx
inc ecx
mov dword [eax], ecx
lea ecx, [esp + 0xbc]
call fcn.10018f0c
inc dword [esi + 4]
jne 0x1001c5e6
lea ecx, [esp + 0xa4]
call fcn.10018f0c
or dword [esp + 0x164], 0xffffffff
lea ecx, [esp + 0xb0]
call fcn.10018f0c
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x14
jl 0x1001c560
mov esi, dword [esp + 0x30]
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0x28]
xor edx, edx
mov eax, dword [esp + 0xcc]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
cmp eax, ecx
mov eax, dword [esp + 0xe8]
setge dl
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, 0xda37
jne 0x1001c6cc
cmp dword [esp + 0x14], ebx
jne 0x1001c6cc
mov ecx, ebx
jmp 0x1001c6cf
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0xe8]
mov edi, 0xffff
sub ecx, eax
mov eax, dword [esp + 0x18]
cmp edi, ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [esp + 0x28]
setle dl
xor ecx, ecx
cmp edx, eax
setle cl
sub ecx, 0x7a88
mov dword [esp + 0xc8], ecx
cmp dword [esi + 0x10], ebx
jne 0x1001c712
xor al, al
jmp 0x1001ce9c
push ebx
lea eax, [esp + 0x44]
push eax
push 0x5668
call fcn.1001ceef
add esp, 0xc
cmp dword [esi + 0x14], 0x10
jb 0x1001c72f
mov ecx, dword [esi]
jmp 0x1001c731
mov ecx, esi
cmp dword [esi + 0x14], 0x10
mov dword [esp + 0x3c], ecx
jb 0x1001c73f
mov edx, dword [esi]
jmp 0x1001c741
mov edx, esi
mov eax, dword [esi + 0x10]
add eax, edx
cmp ecx, eax
je 0x1001cd27
push dword [esp + 0x54]
movdqa xmm0, xmmword [0x10009590]
lea eax, [esp + 0x120]
push eax
lea eax, [esp + 0x114]
mov dword [esp + 0x4c], ebx
push eax
push ebx
lea ecx, [esp + 0x54]
mov dword [esp + 0x58], ebx
movdqu xmmword [esp + 0x11c], xmm0
mov dword [esp + 0x5c], ebx
call fcn.1001a381
mov dword [esp + 0x164], 2
xor ecx, ecx
mov dword [esp + 0x6c], 0x96f377cc
inc ecx
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x28], edi
mov dword [esp + 0x18], 0x2ff7a2d4
mov dword [esp + 0x50], 0x2fdd
mov dword [esp + 0x1c], 0xb334fe9d
mov dword [esp + 0x10], ebx
jmp 0x1001c7d9
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x20], 0x184c506d
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1001c7c9
mov dword [esp + 0x10], ebx
jmp 0x1001c7f5
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x58], 0x3196add8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1001c7e5
push 3
pop eax
mov dword [esp + 0x20], eax
cmp dword [esp + 0x20], ebx
jl 0x1001ca68
jmp 0x1001c811
push 3
pop eax
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x7c]
mov dword [esp + 0x94], 0xbbfefa2e
mov dword [esp + 0x98], 0xbbfefa2e
mov dword [esp + 0x9c], 0xbbfefa2e
mov dword [esp + 0xa0], 0xbbfefa2e
push eax
call fcn.10018e8a
lea eax, [esp + 0x5c]
mov byte [esp + 0x164], 3
push eax
lea eax, [esp + 0x80]
push eax
push ebx
call fcn.1001fd9d
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
mov dword [eax + edx*4], ecx
xor edx, edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x6c]
cmp eax, ecx
setle dl
add edx, dword [esp + 0x14]
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x14]
cmp dword [ecx + edx*4], eax
jle 0x1001c999
mov dword [esp + 0x10], 5
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
jge 0x1001c8eb
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x10], ebx
je 0x1001c8f3
mov dword [esp + 0x18], 1
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x44]
mov eax, dword [edx + eax*4]
imul eax, dword [edx + ecx*4]
xor ecx, ecx
cmp eax, dword [esp + 0x18]
setg cl
xor eax, eax
cmp dword [edx + edi*4], ecx
mov ecx, dword [esp + 0x20]
setne al
mov dword [edx + esi*4], eax
mov eax, dword [esp + 0x44]
mov eax, dword [eax + ecx*4]
mov ecx, 0xfff8
sub eax, 7
cmp ecx, eax
mov eax, dword [esp + 0x10]
sbb ecx, ecx
inc ecx
imul eax, ecx
neg eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 4]
mov dword [ecx], eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x10], 1
jne 0x1001c987
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x72ea1289
jmp 0x1001ca44
push ebx
push 0x13ac
call fcn.1001f034
pop ecx
pop ecx
jmp 0x1001ca44
push 3
lea ecx, [esp + 0x104]
call fcn.10018e8a
mov dword [esp + 0x18], 0x86206571
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x14], ebx
jmp 0x1001c9d3
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x100]
mov dword [eax + ecx*4], 6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1001c9bd
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x7c]
cmp dword [eax], ebx
jne 0x1001c9f8
cmp dword [esp + 0x18], ebx
jne 0x1001c9f8
mov eax, ebx
jmp 0x1001c9fb
xor eax, eax
inc eax
mov dword [esp + 0x94], eax
xor edx, edx
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x58]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0x7c]
cmp ecx, dword [eax + 8]
mov eax, dword [esp + 0x1c]
setne dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x100]
call fcn.10018f0c
lea ecx, [esp + 0x7c]
mov byte [esp + 0x164], 2
call fcn.10018f0c
dec dword [esp + 0x20]
jns 0x1001c80e
mov esi, dword [esp + 0x30]
mov edi, 0xffff
or dword [esp + 0x164], 0xffffffff
lea ecx, [esp + 0x44]
call fcn.10018f0c
mov eax, dword [esp + 0x3c]
mov al, byte [eax]
cmp al, 0x30
jl 0x1001cbd5
cmp al, 0x39
jg 0x1001cbd5
push 0x4ed
lea eax, [esp + 0x3b]
mov dword [esp + 0x14], 0xa61928c1
push eax
push 0x4b1a
mov dword [esp + 0x28], 0xcf7921e1
mov dword [esp + 0x20], 0xfffffffb
push 0x2a64
mov dword [esp + 0x28], 0xc6578637
mov byte [esp + 0x47], bl
push ebx
call fcn.1001cf30
add esp, 0x14
mov dword [esp + 0x10], ebx
jmp 0x1001cba3
mov dword [esp + 0x18], 4
mov dword [esp + 0x28], 0xcf5aa05
cmp dword [esp + 0x10], ebx
jne 0x1001cb5e
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add eax, 0x5466bc65
je 0x1001cb09
cmp dword [esp + 0x14], ebx
je 0x1001cb09
xor eax, eax
inc eax
jmp 0x1001cb0b
mov eax, ebx
mov dword [esp + 0x18], eax
xor ecx, ecx
mov eax, dword [esp + 0x18]
neg eax
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
sub edx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, edx
setl cl
mov dword [esp + 0x28], ecx
xor ecx, ecx
mov eax, dword [esp + 0x28]
cmp eax, 0x270e7ad5
mov eax, dword [esp + 0x10]
setge cl
xor edx, edx
cmp ecx, eax
setne dl
sub edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
neg edx
sbb edx, edx
inc edx
sub eax, edx
jne 0x1001cb5e
mov ecx, ebx
jmp 0x1001cb61
xor ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 1
setne al
cmp dword [esp + 0x10], eax
jge 0x1001cb8d
push 0x2ae8
push 0x43ba
lea eax, [esp + 0x3e]
mov byte [esp + 0x3e], bl
push eax
push ebx
call fcn.10024694
add esp, 0x10
jmp 0x1001cb9f
mov byte [esp + 0x27], bl
cmp byte [esp + 0x27], 0
je 0x1001cb9f
push ebx
call dword [sym.imp.GDI32.dll_CreateBitmapIndirect]
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff8
jne 0x1001cad9
push ebx
lea eax, [esp + 0x44]
push eax
push 0x34e3
lea eax, [esp + 0x48]
push 0x21db
push eax
call fcn.10024a70
mov ecx, dword [esp + 0x50]
add esp, 0x14
inc ecx
jmp 0x1001c731
push dword [esp + 0x5c]
movdqa xmm0, xmmword [0x100095b0]
lea eax, [esp + 0x130]
push eax
lea eax, [esp + 0x124]
mov dword [esp + 0x78], ebx
push eax
push ebx
lea ecx, [esp + 0x80]
mov dword [esp + 0x84], ebx
movdqu xmmword [esp + 0x12c], xmm0
mov dword [esp + 0x88], ebx
call fcn.1001a381
mov dword [esp + 0x164], 4
lea eax, [esp + 0x13c]
push dword [esp + 0x5c]
movdqa xmm0, xmmword [0x100095a0]
lea ecx, [esp + 0x8c]
push eax
lea eax, [esp + 0x134]
mov dword [esp + 0x24], 0x7555b7ce
push eax
push ebx
movdqu xmmword [esp + 0x13c], xmm0
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
call fcn.1001a381
mov byte [esp + 0x164], 5
lea ecx, [esp + 0xf4]
mov dword [esp + 0x1c], 0x4d0289a6
push 3
call fcn.10018e8a
mov byte [esp + 0x164], 6
mov dword [esp + 0x38], ebx
jmp 0x1001ccb2
mov eax, dword [esp + 0x38]
mov dword [esp + eax*4 + 0x13c], 0xb5f0b101
inc dword [esp + 0x38]
cmp dword [esp + 0x38], 3
jl 0x1001cc9f
lea eax, [esp + 0xf4]
push eax
push ebx
push 0x537
lea eax, [esp + 0x44]
push 0x1154
push eax
call fcn.1001facd
mov eax, dword [esp + 0x84]
lea ecx, [esp + 0x108]
add esp, 0x14
mov dword [eax], 0xe
call fcn.10018f0c
lea ecx, [esp + 0x88]
call fcn.10018f0c
or dword [esp + 0x164], 0xffffffff
lea ecx, [esp + 0x70]
call fcn.10018f0c
lea eax, [esp + 0x40]
push eax
push ebx
push 0x2b48
call fcn.1001f07a
add esp, 0xc
jmp 0x1001c70b
push 2
lea ecx, [esp + 0x64]
call fcn.10018e8a
push ebx
lea eax, [esp + 0x30]
mov dword [esp + 0x168], 7
push eax
lea eax, [esp + 0x68]
mov dword [esp + 0x18], 0xa876e6ba
mov dword [esp + 0x38], 0xffffffff
push eax
call fcn.1001eaaf
add esp, 0xc
mov dword [esp + 0x2c], ebx
jmp 0x1001cd79
mov eax, dword [esp + 0x2c]
mov dword [esp + eax*4 + 0xd4], 0xfffffff7
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], 2
jl 0x1001cd66
xor ecx, ecx
mov dword [esp + 0x2c], ebx
inc ecx
jmp 0x1001cd95
mov eax, dword [esp + 0x2c]
mov dword [esp + eax*4 + 0x54], ebx
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], ecx
jl 0x1001cd89
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x10], ebx
jl 0x1001ce91
mov dword [esp + 0x30], 0xfffffffd
mov dword [esp + 0x14], 0xf748dc16
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [edx + esi*4], eax
cmp eax, ebx
jne 0x1001ce7c
mov eax, dword [esp + 0x60]
mov dword [esp + 0x50], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], 0xffffffff
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x1c], edx
xor edx, edx
cmp dword [edi + eax*4], 1
setg dl
xor eax, eax
cmp dword [edi + ecx*4], ebx
sete al
xor ecx, ecx
cmp eax, edx
setle cl
xor eax, eax
cmp ecx, dword [edi + esi*4]
mov ecx, dword [esp + 0x1c]
setg al
sub eax, 0x42c1fe72
cmp eax, dword [edi + ecx*4]
jge 0x1001ce5a
mov eax, dword [esp + 0x50]
cmp dword [eax + 4], ebx
je 0x1001ce5a
xor eax, eax
inc eax
jmp 0x1001ce5c
mov eax, ebx
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x30]
mov dword [esp + 0xd4], edx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x60]
cmp edx, dword [eax + ecx*4]
jg 0x1001ce7c
mov eax, ebx
jmp 0x1001ce7f
xor eax, eax
inc eax
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x10]
dec dword [esp + 0x10]
jns 0x1001cda9
lea ecx, [esp + 0x60]
call fcn.10018f0c
mov al, 1
mov ecx, dword [esp + 0x15c]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret