Function at 0x401280
Capabilities:
Create thread
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8c
mov eax, dword [0x417040]
xor eax, esp
mov dword [esp + 0x88], eax
push ebx
push esi
push edi
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ebx, eax
push 0
mov dword [esp + 0x4c], ebx
call esi
mov edi, eax
push 1
mov dword [esp + 0x38], edi
call esi
mov esi, eax
mov ecx, esi
mov dword [esp + 0x38], esi
imul ecx, edi
shl ecx, 2
push ecx
call fcn.00402172
add esp, 4
mov dword [esp + 0x44], eax
xorps xmm0, xmm0
mov dword [esp + 0x90], 0
mov ecx, esi
movlpd qword [esp + 0x80], xmm0
neg ecx
movlpd qword [esp + 0x88], xmm0
push ebx
mov dword [esp + 0x70], 0x28
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], 0x200001
mov dword [esp + 0x80], 0
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push esi
push edi
push dword [esp + 0x50]
mov ebx, eax
mov dword [esp + 0x4c], ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
push ebx
mov dword [esp + 0x58], eax
call dword [sym.imp.GDI32.dll_SelectObject]
xor ecx, ecx
push 0x35d77
mov dword [esp + 0x50], ecx
call fcn.00402134
add esp, 4
test eax, eax
je 0x40162e
lea edi, [eax + 0x23]
and edi, 0xffffffe0
push 0x35d54
push 0
push edi
mov dword [edi - 4], eax
call fcn.00403bc0
xor eax, eax
add esp, 0xc
mov dword [esp + 0x14], eax
xor esi, esi
mov ebx, eax
sar ebx, 6
mov ecx, ebx
and ecx, 0x80000003
jns 0x401396
dec ecx
or ecx, 0xfffffffc
inc ecx
mov edx, eax
mov eax, esi
sar eax, 0xd
shl edx, cl
and eax, esi
xor edx, eax
and edx, 0x8000007f
jns 0x4013b0
dec edx
or edx, 0xffffff80
inc edx
mov eax, esi
dec esi
sar eax, 1
xor dl, al
mov eax, dword [esp + 0x14]
mov ecx, eax
sar ecx, 9
and cl, al
sar eax, 0xc
xor cl, al
mov eax, dword [esp + 0x14]
xor cl, bl
or dl, cl
mov byte [edi + eax], dl
inc eax
mov dword [esp + 0x14], eax
cmp esi, 0xfffca2ac
jg 0x401382
push 0xc
call fcn.00402134
add esp, 4
lea ecx, [esp + 0x68]
mov dword [eax], 0x35d54
push ecx
push 0
push eax
push 0x401690
push 0
push 0
mov dword [eax + 4], edi
mov dword [eax + 8], 0x401170
call fcn.004051bf
add esp, 0x18
mov dword [esp + 0x64], eax
test eax, eax
je 0x40161f
mov ecx, dword [sym.imp.GDI32.dll_SetDIBits]
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x34]
add eax, 2
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x54], ecx
mov ecx, dword [sym.imp.GDI32.dll_BitBlt]
mov dword [esp + 0x58], ecx
xor ecx, ecx
mov dword [esp + 0x60], eax
nop dword [eax + eax]
mov dword [esp + 0x5c], ecx
cmp ecx, 6
ja case.default.0x40145d
jmp dword [ecx*4 + 0x401634]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
jmp 0x4014f0
mov dword [esp + 0x14], 0
mov dword [esp + 0x20], 0xff
mov dword [esp + 0x1c], 0
jmp case.default.0x40145d
mov dword [esp + 0x14], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0xff
jmp case.default.0x40145d
mov dword [esp + 0x1c], 0
jmp 0x4014e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x20], 0xff
mov dword [esp + 0x1c], 0xff
jmp case.default.0x40145d
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0xff
jmp 0x4014f0
mov dword [esp + 0x1c], 0xff
mov dword [esp + 0x20], 0xff
mov dword [esp + 0x14], 0xff
xor ecx, ecx
mov dword [esp + 0x24], ecx
test esi, esi
jle 0x4015ad
mov dword [esp + 0x3c], eax
nop word [eax + eax]
xor edx, edx
mov dword [esp + 0x30], edx
test ebx, ebx
jle 0x40158f
nop word [eax + eax]
test dl, 1
jne 0x4015f8
test cl, 1
jne 0x401601
or bl, 0xff
mov byte [esp + 0x13], 0
or bh, 0xff
xor cl, cl
mov edx, eax
mov dword [esp + 0x28], 0xfffffffe
mov esi, dword [esp + 0x28]
mov edi, eax
mov dword [esp + 0x2c], 1
mov byte [edx + esi], cl
or esi, 0xffffffff
mov cl, byte [esp + 0x13]
mov byte [edx + esi], cl
mov esi, eax
mov ecx, dword [esp + 0x2c]
add eax, 4
mov edx, dword [esp + 0x30]
inc edx
mov byte [esi], bh
mov byte [edi + ecx], bl
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x30], edx
cmp edx, ebx
jl 0x401520
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
inc ecx
lea edx, [ebx*4]
add eax, edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x3c], eax
cmp ecx, esi
jl 0x401510
mov edi, dword [esp + 0x40]
push 0
lea eax, [esp + 0x70]
push eax
push dword [esp + 0x4c]
push esi
push 0
push dword [esp + 0x64]
push edi
call dword [esp + 0x70]
push 0xcc0020
push 0
push 0
push edi
push esi
push ebx
push 0
push 0
push dword [esp + 0x68]
call dword [esp + 0x7c]
mov eax, dword [esp + 0x4c]
xor ecx, ecx
inc eax
cmp dword [esp + 0x5c], 6
cmovne ecx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x4c], ecx
jmp 0x401450
test cl, 1
jne 0x401532
mov ecx, dword [esp + 0x14]
mov bl, byte [esp + 0x1c]
mov bh, byte [esp + 0x20]
mov byte [esp + 0x1b], 0
mov byte [esp + 0x13], cl
mov cl, byte [esp + 0x1b]
jmp 0x40153f
push 6
mov dword [esp + 0x6c], 0
call fcn.00401d3c
call fcn.004055a8
nop
adc al, 0x40
add byte [esi + 20], dh
inc eax
add byte [eax - 0x55ffbfec], dl
adc al, 0x40
add byte [esp + edx + 0x14ce0040], dh
inc eax
add al, ah
adc al, 0x40
add byte [ebp - 0x75], dl
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
cmp ecx, 0x1000
jb 0x401673
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40167f
mov eax, edx
mov dword [ebp + 0xc], ecx
mov dword [ebp + 8], eax
pop ebp
jmp fcn.00402164
jmp fcn.004055a8