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

Disassembly:
sub esp, 0x280
mov eax, dword [0x10060008]
xor eax, esp
mov dword [esp + 0x27c], eax
mov eax, dword [esp + 0x290]
push ebx
mov ebx, dword [esp + 0x28c]
push ebp
mov ebp, dword [esp + 0x28c]
push esi
mov esi, ecx
mov dword [esp + 0x20], eax
push edi
mov edi, dword [esp + 0x2a4]
mov dword [esp + 0x20], ebp
mov eax, dword [esi + 0x2a8]
mov dword [esp + 0x18], ebx
cmp word [eax + ebx*2], 0
je 0x1001d277
push 1
push ebp
call dword [sym.imp.GDI32.dll_SetBkMode]
push edi
push ebp
call dword [sym.imp.GDI32.dll_SelectObject]
test dword [esi + 0x14], 0x2000
mov dword [esp + 0x44], eax
je 0x1001c8e9
push dword [esi + 0x2d8]
jmp 0x1001c8ef
push dword [esi + 0x2d4]
push ebp
call dword [sym.imp.GDI32.dll_SetTextColor]
movzx ecx, word [esi + 0x28a]
mov edx, dword [esi + 0x2a8]
mov edi, dword [esp + 0x29c]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], edi
movzx eax, word [edx + ebx*2]
add eax, edi
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0x2b4]
movzx eax, word [eax]
add eax, ecx
test byte [esi + 0x10], 1
movzx ecx, word [esi + 0xe]
mov dword [esp + 0x64], eax
lea eax, [ebx + 1]
je 0x1001c984
cmp eax, ecx
jge 0x1001c963
nop dword [eax]
cmp word [edx + eax*2], 0
jne 0x1001c959
test eax, eax
jle 0x1001c950
inc eax
cmp eax, ecx
jl 0x1001c940
cmp eax, ecx
jge 0x1001c963
cmp word [edx + eax*2], 0
jbe 0x1001c963
test eax, eax
jne 0x1001ca1a
lea eax, [esp + 0x68]
push eax
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x70]
sub eax, dword [esp + 0x58]
add eax, edi
mov dword [esp + 0x60], eax
jmp 0x1001ca1a
cmp eax, ecx
jge 0x1001c9a7
cmp word [edx + eax*2], 0
jne 0x1001c9a1
test eax, eax
jle 0x1001c998
inc eax
cmp eax, ecx
jl 0x1001c988
cmp eax, ecx
jge 0x1001c9a7
cmp word [edx + eax*2], 0
jbe 0x1001c9a7
test eax, eax
jne 0x1001ca1a
lea eax, [esp + 0x68]
push eax
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x58]
add eax, edi
push 3
mov dword [esp + 0x6c], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push eax
push ebp
call edi
push 8
mov ebx, eax
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
push ebp
call edi
mov ecx, dword [esp + 0x74]
mov edi, eax
inc ecx
push ecx
mov ecx, dword [esp + 0x74]
inc ecx
push ecx
movzx ecx, word [esi + 0x28a]
add ecx, dword [esp + 0x74]
push ecx
push dword [esp + 0x74]
push ebp
call dword [sym.imp.GDI32.dll_Rectangle]
push ebx
mov ebx, dword [sym.imp.GDI32.dll_SelectObject]
push ebp
call ebx
push edi
push ebp
call ebx
mov ebx, dword [esp + 0x18]
test dword [esi + 0x10], 0x4000
mov byte [esp + 0x88], 0
je 0x1001ca88
test ebx, ebx
je 0x1001ca88
lea ecx, [ebx - 1]
mov eax, 0x4ec4ec4f
mul ecx
mov eax, 0x4ec4ec4f
mov ecx, edx
mul ebx
shr ecx, 3
shr edx, 3
imul eax, edx, 0x1a
mov edx, ebx
sub edx, eax
test ecx, ecx
jne 0x1001ca5a
mov ecx, 0x20
jmp 0x1001ca5d
add ecx, 0x40
test edx, edx
mov eax, 0x1a
cmove edx, eax
lea eax, [edx + 0x40]
push eax
push ecx
push str._c_c
lea eax, [esp + 0x94]
push 0x200
push eax
call fcn.100032e0
add esp, 0x14
jmp 0x1001cab5
lea eax, [esp + 0x88]
mov dword [esp + 0x2c], 0x200
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
push eax
movzx eax, bx
shl eax, 0x10
push eax
push 0x531
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_SendMessageA]
test dword [esi + 0x10], 0x400
je 0x1001caf3
mov ecx, dword [esi + 0x310]
mov eax, ecx
mov edx, dword [esi + 0x308]
cmp ecx, edx
cmovge eax, edx
cmp ebx, eax
jl 0x1001caf3
cmp ecx, edx
cmovle ecx, edx
cmp ebx, ecx
jg 0x1001caf3
test byte [esi + 0x14], 0x20
je 0x1001caec
push dword [esi + 0x2dc]
jmp 0x1001caf9
push 0xdcdcdc
jmp 0x1001caf9
push dword [esi + 0x2f4]
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov edi, eax
push edi
push ebp
call dword [sym.imp.GDI32.dll_SelectObject]
test dword [esi + 0x10], 0x8000
mov ebx, eax
je 0x1001cb1c
mov ecx, dword [esi + 0x2f8]
jmp 0x1001cb22
mov ecx, dword [esi + 0x2d4]
push ecx
push ebp
call dword [sym.imp.GDI32.dll_SetTextColor]
movups xmm1, xmmword [esp + 0x58]
movaps xmm0, xmm1
psrldq xmm0, 0xc
movd eax, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
movups xmmword [esp + 0x68], xmm1
push eax
mov dword [esp + 0x68], eax
movd eax, xmm0
movaps xmm0, xmm1
psrldq xmm0, 4
push eax
mov dword [esp + 0x68], eax
movd eax, xmm0
push eax
movd eax, xmm1
push eax
push ebp
mov dword [esp + 0x6c], eax
call dword [sym.imp.GDI32.dll_Rectangle]
push 0x200f
push 6
lea eax, [esp + 0x60]
push eax
push ebp
call dword [sym.imp.USER32.dll_DrawEdge]
push 0
push 0x8815
lea eax, [esp + 0x60]
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x98]
push eax
push ebp
call dword [sym.imp.USER32.dll_DrawTextExA]
movups xmm0, xmmword [esp + 0x68]
push ebx
push ebp
movups xmmword [esp + 0x60], xmm0
call dword [sym.imp.GDI32.dll_SelectObject]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x24]
movzx ebx, word [esi + 0x286]
push ebp
mov dword [esp + 0x24], ebx
call dword [sym.imp.GDI32.dll_SelectObject]
movzx ecx, word [esi + 0x2a6]
mov eax, dword [esi + 0x14]
mov dword [esp + 0x24], ecx
test eax, 0x200
je 0x1001cc03
test byte [esi + 0x10], 2
je 0x1001cc03
test eax, 0x800
je 0x1001cc03
test cx, cx
je 0x1001cc03
add ecx, 0xffff
mov dword [esp + 0x24], ecx
cmp bx, cx
ja 0x1001d1f0
mov edi, dword [esp + 0x18]
lea edx, [edi + edi*4]
shl edx, 2
mov dword [esp + 0x28], edx
nop word [eax + eax]
mov eax, dword [esi]
movzx ecx, bx
mov ebx, dword [eax + ecx*4]
mov eax, dword [esi + 0x2b4]
add ebx, edx
cmp word [eax + ecx*2], 0
je 0x1001d1dc
mov eax, dword [esi + 0x10]
test eax, 0x10000
je 0x1001cc52
test byte [ebx], 4
je 0x1001cc52
push dword [esi + 0x2f0]
jmp 0x1001cc7b
test dword [esi + 0x14], 0x2000
je 0x1001cc63
push dword [esi + 0x2d8]
jmp 0x1001cc7b
test eax, 0x8000
je 0x1001cc74
mov eax, dword [ebx + 8]
and eax, 0xffffff
jmp 0x1001cc7a
mov eax, dword [esi + 0x2d4]
push eax
push ebp
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esi + 0x2b4]
mov ecx, dword [esp + 0x64]
movzx edx, bp
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x5c], ecx
movzx eax, word [eax + edx*2]
add ecx, eax
mov byte [esp + 0x88], 0
mov dword [esp + 0x64], ecx
movups xmm0, xmmword [esp + 0x58]
movups xmmword [esp + 0x48], xmm0
test edi, edi
jne 0x1001cce1
test dword [esi + 0x10], 0x2000
je 0x1001cce1
push edx
push 0x100581d4
lea eax, [esp + 0x90]
push 0x200
push eax
call fcn.100032e0
add esp, 0x10
jmp 0x1001cd18
lea eax, [esp + 0x88]
mov dword [esp + 0x6c], 0x200
mov dword [esp + 0x68], eax
lea eax, [esp + 0x68]
push eax
movzx eax, di
shl eax, 0x10
or eax, edx
push eax
push 0x531
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_SendMessageA]
test edi, edi
jne 0x1001cdb3
test dword [esi + 0x10], 0x200
je 0x1001cd5d
mov ecx, dword [esi + 0x304]
mov eax, ecx
mov edx, dword [esi + 0x30c]
cmp ecx, edx
mov edi, dword [esp + 0x1c]
cmovge eax, edx
movzx ebx, di
cmp ebx, eax
jl 0x1001cd5d
cmp ecx, edx
cmovle ecx, edx
cmp ebx, ecx
jg 0x1001cd5d
test byte [esi + 0x14], 0x20
je 0x1001cd56
push dword [esi + 0x2dc]
jmp 0x1001cd63
push 0xdcdcdc
jmp 0x1001cd63
push dword [esi + 0x2f4]
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ebx, eax
push ebx
push ebp
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x64]
mov edi, eax
push dword [esp + 0x64]
push dword [esp + 0x64]
push dword [esp + 0x64]
push ebp
call dword [sym.imp.GDI32.dll_Rectangle]
push 0x200f
push 6
lea eax, [esp + 0x60]
push eax
push ebp
call dword [sym.imp.USER32.dll_DrawEdge]
push edi
push ebp
call dword [sym.imp.GDI32.dll_SelectObject]
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x1001d0cc
movzx edx, word [esi + 0x318]
mov eax, dword [ebx]
movzx edi, word [esi + 0x314]
and eax, 1
movzx ebp, word [esi + 0x31a]
cmp di, dx
mov dword [esp + 0x3c], eax
mov ecx, edi
mov eax, edx
cmovae ecx, eax
movzx eax, cx
mov ecx, edi
mov dword [esp + 0x30], eax
mov eax, edx
cmovbe ecx, eax
movzx eax, cx
mov dword [esp + 0x34], eax
movzx eax, word [esi + 0x316]
mov dword [esp + 0x14], eax
cmp word [esp + 0x14], bp
movzx ecx, ax
mov eax, ebp
cmovae ecx, eax
movzx eax, cx
mov dword [esp + 0x38], eax
movzx eax, word [esi + 0x316]
movzx ecx, ax
mov eax, ebp
cmovbe ecx, eax
movzx eax, cx
xor ecx, ecx
mov dword [esp + 0x14], eax
test dx, dx
jne 0x1001ce42
test di, di
jne 0x1001ce42
test bp, bp
jne 0x1001ce42
movzx eax, word [esi + 0x316]
test ax, ax
je 0x1001ce74
mov eax, dword [esp + 0x1c]
cmp ax, word [esp + 0x30]
jb 0x1001ce74
cmp ax, word [esp + 0x34]
ja 0x1001ce74
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
movzx eax, ax
cmp edx, eax
jb 0x1001ce74
mov eax, dword [esp + 0x14]
movzx eax, ax
cmp edx, eax
mov eax, 1
cmovbe ecx, eax
cmp dword [esp + 0x3c], 0
mov eax, dword [esi + 0x10]
je 0x1001cfa0
test ecx, ecx
je 0x1001cef3
test eax, 0x100
je 0x1001cfa0
mov ebx, dword [esi + 0x2fc]
mov eax, ebx
shr eax, 0x10
test byte [esi + 0x14], 0x20
je 0x1001cee8
movzx ecx, al
add ecx, 0xb4
movzx eax, bx
shr eax, 8
shl ecx, 0xf
add eax, 0xb4
shl eax, 7
and ecx, 0xffff00ff
or ecx, eax
movzx eax, bl
add eax, 0xb4
and ecx, 0xffffff00
shr eax, 1
or ecx, eax
push ecx
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x1001d065
mov edx, dword [esi + 0x2e8]
jmp 0x1001d008
test eax, 0x100
je 0x1001cfa0
and eax, 0x28000
test byte [esi + 0x14], 0x20
je 0x1001cf35
cmp eax, 0x28000
jne 0x1001cf1e
mov edx, dword [ebx + 4]
mov ebx, dword [esi + 0x2e8]
jmp 0x1001d003
push dword [esi + 0x2e8]
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x1001d065
cmp eax, 0x28000
jne 0x1001cf8a
mov ecx, dword [ebx + 4]
mov eax, ecx
shr eax, 0x10
movzx edx, al
add edx, 0xb4
movzx eax, cx
shr eax, 8
shl edx, 0xf
add eax, 0xb4
shl eax, 7
and edx, 0xffff00ff
or edx, eax
movzx eax, cl
add eax, 0xb4
and edx, 0xffffff00
shr eax, 1
or edx, eax
push edx
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x1001d065
push 0xb4b4b4
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x1001d065
test ecx, ecx
je 0x1001cfbb
push dword [esi + 0x2fc]
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x1001d065
mov ecx, dword [ebx]
and ecx, 2
test eax, 0x8000
jne 0x1001cff6
test ecx, ecx
je 0x1001cfe2
push dword [esi + 0x2cc]
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x1001d065
push dword [esi + 0x2d0]
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x1001d065
mov ebx, dword [ebx + 4]
test ecx, ecx
je 0x1001d052
mov edx, dword [esi + 0x2cc]
mov eax, ebx
shr eax, 0x10
movzx edi, al
mov eax, edx
shr eax, 0x10
movzx eax, al
add edi, eax
movzx ecx, dx
shr ecx, 8
shl edi, 0xf
movzx eax, bx
and edi, 0xffff00ff
shr eax, 8
add ecx, eax
movzx eax, bl
shl ecx, 7
or edi, ecx
movzx ecx, dl
add ecx, eax
and edi, 0xffffff00
shr ecx, 1
or edi, ecx
push edi
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x1001d065
and ebx, 0xffffff
push ebx
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ebx, eax
mov dword [esp + 0x14], eax
push dword [esi + 0x2e0]
push 1
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
mov edi, dword [esp + 0x20]
mov ebp, eax
push ebx
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push ebp
push edi
mov ebx, eax
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x64]
mov edi, eax
push dword [esp + 0x64]
push dword [esp + 0x64]
push dword [esp + 0x64]
push dword [esp + 0x30]
call dword [sym.imp.GDI32.dll_Rectangle]
push ebx
mov ebx, dword [esp + 0x24]
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
push edi
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x14]
mov ebx, dword [sym.imp.GDI32.dll_DeleteObject]
call ebx
push ebp
call ebx
mov eax, dword [esp + 0x18]
mov ebx, 0x820
mov ecx, dword [esp + 0x1c]
mov edx, dword [esi]
sub dword [esp + 0x60], 2
add dword [esp + 0x58], 2
movzx ebp, ax
movzx eax, cx
shl ebp, 0x10
or ebp, eax
mov eax, ebp
movzx edi, bp
shr eax, 0x10
lea ecx, [eax + eax*4]
mov eax, dword [edx + edi*4]
lea ecx, [eax + ecx*4]
test ecx, ecx
je 0x1001d2aa
mov ecx, dword [ecx]
test cl, cl
jns 0x1001d2aa
test cl, 0x10
je 0x1001d125
mov edx, 0x11
lea edi, [edx + 3]
lea eax, [edx + 1]
jmp 0x1001d142
test cl, 8
je 0x1001d137
mov edx, 0x21
lea edi, [edx + 3]
lea eax, [edx + 1]
jmp 0x1001d142
mov edx, 9
lea edi, [edx + 3]
lea eax, [edx + 1]
test cl, 0x40
jne 0x1001d14f
test cl, 0x20
mov eax, edx
cmovne eax, edi
test al, 0x10
je 0x1001d15a
mov ebx, 0x821
jmp 0x1001d168
test al, 8
jne 0x1001d168
test al, 0x20
mov ecx, 0x822
cmovne ebx, ecx
test al, 2
je 0x1001d292
or ebx, 4
mov edi, dword [esp + 0x18]
mov eax, dword [esi + 0x10]
mov ecx, ebx
mov ebp, dword [esp + 0x20]
or ecx, 0x8000
and al, 4
push 0
cmove ecx, ebx
lea eax, [esp + 0x5c]
push ecx
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x98]
push eax
push ebp
call dword [sym.imp.USER32.dll_DrawTextExA]
test byte [esi + 0x14], 4
je 0x1001d1ce
cmp dword [esi + 0x308], edi
jne 0x1001d1ce
mov ecx, dword [esp + 0x1c]
movzx eax, cx
cmp dword [esi + 0x304], eax
jne 0x1001d1ce
push 0x1005789b
push ebp
mov ecx, esi
call fcn.1001bc00
movups xmm0, xmmword [esp + 0x48]
mov edx, dword [esp + 0x28]
movups xmmword [esp + 0x58], xmm0
mov ebx, dword [esp + 0x1c]
inc ebx
mov dword [esp + 0x1c], ebx
cmp bx, word [esp + 0x24]
jbe 0x1001cc20
lea eax, [esp + 0x78]
push eax
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x64]
mov esi, dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x60]
push 3
mov dword [esp + 0x84], eax
call esi
mov ebx, dword [sym.imp.GDI32.dll_SelectObject]
push eax
push ebp
call ebx
push 8
mov edi, eax
call esi
push eax
push ebp
call ebx
mov ecx, dword [esp + 0x84]
mov esi, eax
inc ecx
push ecx
mov ecx, dword [esp + 0x84]
inc ecx
push ecx
push dword [esp + 0x84]
push dword [esp + 0x84]
push ebp
call dword [sym.imp.GDI32.dll_Rectangle]
push edi
push ebp
call ebx
push esi
push ebp
call ebx
mov esi, dword [esp + 0x44]
push esi
push ebp
call ebx
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [esp + 0x28c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100076a5
add esp, 0x280
ret 0x14
test al, 1
jne 0x1001d173
test al, 4
je 0x1001d173
or ebx, 8
jmp 0x1001d173
push ecx
push ebp
mov ecx, esi
call fcn.10016fe0
mov edi, dword [esp + 0x18]
test eax, eax
mov ecx, 1
cmove eax, ecx
test edi, edi
je 0x1001d2e6
cmp eax, ecx
jne 0x1001d2dd
mov ebx, dword [esi + 0x10]
and ebx, 0x40
or ebx, 0x10400
shr ebx, 5
jmp 0x1001d177
cmp eax, 2
jne 0x1001d177
test byte [esi + 0x10], 0x80
mov ebx, 0x824
mov eax, 0x826
cmove ebx, eax
jmp 0x1001d177