Function at 0x10041753
Capabilities:
Create thread

Disassembly:
mov eax, 0x10067f45
call fcn.10066a48
sub esp, 0xb0
mov dword [ebp - 0x1c], 0x5a9c4c8d
push ebx
mov dword [ebp - 0x14], 0xf415
xor ebx, ebx
mov dword [ebp - 0x18], 0xfffffffe
push esi
mov dword [ebp - 0x24], 0xa46b4c01
push edi
mov dword [ebp - 0x2c], ebx
mov edi, edx
mov dword [ebp - 0x2c], 0xdc66
mov eax, dword [ebp - 0x1c]
push 1
mov dword [ebp - 0x44], ecx
pop esi
cmp dword [ebp - 0x1c], ebx
je 0x100417bf
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, esi
mov eax, dword [ebp - 0x1c]
setle cl
xor edx, edx
cmp ecx, eax
setg dl
sub edx, dword [ebp - 0x1c]
imul edx, dword [ebp - 0x14]
test edx, edx
mov edx, esi
jne 0x100417c1
mov edx, ebx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setl cl
or eax, 0xffffffff
cmp eax, ecx
sbb eax, eax
neg eax
add eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
neg eax
cmp eax, dword [ebp - 0x14]
je 0x100417fc
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x100417f1
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
jmp 0x10041929
push esi
lea ecx, [ebp - 0x5c]
call fcn.10028b5c
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x20], 0xfffffff6
mov dword [ebp - 0x2c], 0x4d37718c
mov dword [ebp - 0x24], ebx
jmp 0x10041832
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x5c]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x10041826
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x5c]
cmp dword [eax], ecx
jne 0x10041844
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov eax, dword [ebp - 0x5c]
cmp dword [eax], 0xffffffff
mov eax, dword [ebp - 0x14]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x18]
setg cl
cmp ecx, 0xfffffff9
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setl cl
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], esi
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x14]
jne 0x1004188d
mov edx, ebx
cmp dword [ebp - 0x28], ebx
je 0x1004188f
mov edx, esi
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setg cl
imul ecx, dword [ebp - 0x28]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x24], 0xe63d4d86
mov eax, dword [ebp - 0x1c]
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setge cl
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x24], ebx
jmp 0x1004191c
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], ebx
jl 0x100418fd
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x100418f1
push ebx
push 0x1f60
call dword [sym.imp.USER32.dll_GetWindowPlacement]
mov eax, dword [ebp - 0x5c]
cmp dword [eax], ebx
jne 0x100418fd
dec dword [ebp - 0x1c]
jns 0x100418dd
mov dword [ebp - 0x20], ebx
jmp 0x10041914
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10041911
push ebx
call dword [sym.imp.GDI32.dll_CreatePenIndirect]
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jle 0x10041902
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jle 0x100418d5
lea ecx, [ebp - 0x5c]
call fcn.10028c61
push 3
pop ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x14], 0x36544d18
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
je 0x10041944
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov edx, 0xffff
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x14], ebx
je 0x1004196e
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10041a0a
call dword [sym.imp.USER32.dll_GetMessageTime]
jmp 0x10041a0a
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x18], ebx
jmp 0x10041989
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x98], edx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x1004197c
mov eax, dword [ebp - 0x14]
mov edx, ebx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x20], ebx
je 0x100419ac
mov edx, esi
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
cmp ecx, 0xffffffff
setne dl
sub edx, 0xffff
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp edx, 0x6fdd
setle al
cmp dword [ebp - 0x98], eax
jl 0x100419f8
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10041a0a
push 0x6ee
push ebx
push 0xcf7
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
jmp 0x10041a0a
dec dword [ebp - 0x24]
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10041a0a
push ebx
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
mov dword [ebp - 0x20], 6
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x14], ebx
jmp 0x10041a2e
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x40], 4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10041a20
mov dword [ebp - 0x14], ebx
jmp 0x10041a4a
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa4], 0x74dd0324
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10041a39
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10041a62
push 0x174c
call dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [ebp - 0x40], 9
jmp 0x10041aa2
mov dword [ebp - 0x2c], 0x2121
mov dword [ebp - 0x2c], 0xfffffffd
mov dword [ebp - 0x2c], 0x17b844a7
mov dword [ebp - 0x18], ebx
jmp 0x10041a96
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xbc], 0x32cf415d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10041a85
dec dword [ebp - 0x28]
dec dword [ebp - 0x40]
cmp dword [ebp - 0x40], 0xfffffffc
jle 0x10041a6b
mov byte [ebp - 0x2d], bl
mov dword [ebp - 0x1c], 0x4e064826
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x20], 0x8169b41d
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], ebx
jmp 0x10041ad6
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x34], 0xea3bbe75
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x10041ac8
mov dword [ebp - 0x1c], 0xffffffe5
jmp 0x10041b85
mov dword [ebp - 0x20], 0xc4e2bf5
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x18], ebx
jmp 0x10041b07
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xb0], 0x59ba
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10041af6
cmp dword [ebp - 0x1c], ebx
jne 0x10041b33
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0x95e04a2
mov eax, dword [ebp - 0x24]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x24]
setge dl
xor ebx, ebx
cmp edx, eax
setle bl
xor ecx, ecx
mov dword [ebp - 0xb0], ebx
mov eax, dword [ebp - 0x20]
cmp ebx, eax
setle cl
xor ebx, ebx
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x28], ebx
je 0x10041b75
mov eax, esi
cmp dword [ebp - 0x1c], ebx
jne 0x10041b77
mov eax, ebx
cmp eax, 0xd83f7cd3
sbb eax, eax
inc eax
mov dword [ebp - 0x20], eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xffffffeb
jl 0x10041ae7
cmp dword [ebp - 0x20], ebx
jne 0x10041bae
cmp dword [ebp - 0x24], ebx
jne 0x10041b9c
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x34], esi
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
xor edx, edx
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
mov ecx, 0x93b57206
setne dl
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
sub ecx, eax
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
cmp eax, 5
setle cl
add ecx, 0x385f60b8
jne 0x10041c0c
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xfffffff9
je 0x10041c71
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x10041c85
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x10041c38
push 0x67e
push 0xe49
push 0x1048
call dword [sym.imp.GDI32.dll_GetPixel]
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x34], ebx
jne 0x10041c65
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x34]
mov dword [ebp - 0x20], esi
cmp dword [ebp - 0x20], ebx
jne 0x10041c57
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x34]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x34]
mov eax, ebx
cmp dword [ebp - 0x34], esi
jle 0x10041c67
mov eax, esi
mov dword [ebp - 0x34], eax
dec dword [ebp - 0x14]
jns 0x10041c1a
jmp 0x10041c85
mov dword [ebp - 0x28], 0x9cf818a8
mov dword [ebp - 0x28], 0x50fade0f
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x2d]
call fcn.100414d9
push 4
lea ecx, [ebp - 0x80]
call fcn.10028b5c
mov dword [ebp - 0x2c], 0xc01e6e2b
mov dword [ebp - 0x14], ebx
jmp 0x10041cb1
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x74], 6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10041ca3
mov dword [ebp - 0x14], ebx
jmp 0x10041ccc
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x80]
mov dword [eax + ecx*4], 0x42c70bb7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x10041cbc
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x10041cef
push ebx
push 0x1ee1
push ebx
push ebx
push 0xcff
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov esi, dword [ebp - 0x80]
mov dword [esi + 0xc], 2
mov eax, dword [esi + 0xc]
xor edx, edx
mov dword [ebp - 0x18], 0xfffffff9
mov eax, dword [ebp + eax*4 - 0x74]
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp + eax*4 - 0x74]
imul ecx, eax, 0xffffeb85
mov eax, dword [esi + 0xc]
mov eax, dword [ebp + eax*4 - 0x74]
cmp ecx, eax
mov eax, dword [ebp - 0x6c]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x18]
setge cl
imul eax, ecx
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x18]
dec dword [esi + 0xc]
jns 0x10041cf9
lea ecx, [ebp - 0x80]
call fcn.10028c61
mov dword [ebp - 0x20], 0xffffffe6
jmp 0x10041f28
push 3
lea ecx, [ebp - 0x8c]
call fcn.10028b5c
mov dword [ebp - 4], ebx
mov dword [ebp - 0x1c], 0x24a8c6a5
mov dword [ebp - 0x18], 0x68aa2d34
mov dword [ebp - 0x1c], ebx
jmp 0x10041d90
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x10041d8d
push 0xd3c
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x13
jg 0x10041d77
mov ecx, dword [ebp - 0x1c]
xor edx, edx
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setl dl
xor ecx, ecx
cmp edx, eax
setg cl
xor edx, edx
add ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setle dl
add eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, edx
setne cl
imul ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
sub edx, ecx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x1c]
setne cl
xor edx, edx
cmp ecx, 0xbe92
setle dl
xor ebx, ebx
cmp edx, eax
setl bl
sub ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
neg ebx
sbb ebx, ebx
xor ecx, ecx
inc ebx
cmp eax, ebx
setge cl
xor ebx, ebx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x14], ebx
jmp 0x10041e23
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x8c]
mov dword [eax + ecx*4], 0x386c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10041e10
push 1
lea ecx, [ebp - 0x68]
call fcn.10028b5c
mov dword [ebp - 0x18], 0xfffffff6
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], 0xcd7d393e
mov dword [ebp - 0x18], ebx
jmp 0x10041e59
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x68]
mov dword [eax + ecx*4], 0x6cce57bf
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x10041e49
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jne 0x10041e95
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 1
setg cl
or edx, 0xffffffff
mov dword [ebp - 0x18], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x18]
sub edx, eax
mov eax, dword [ebp - 0x2c]
cmp edx, eax
setle cl
cmp ecx, 1
jge 0x10041e95
mov esi, ebx
jmp 0x10041e98
xor esi, esi
inc esi
mov eax, dword [ebp - 0x68]
neg esi
xor ecx, ecx
mov edx, dword [eax]
cmp esi, edx
setge cl
xor eax, eax
cmp ecx, edx
setne al
mov dword [ebp - 0x28], eax
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10041ecb
push 0x1ee5
push ebx
push ebx
push 0x213
push ebx
call dword [sym.imp.SHELL32.dll_ExtractIconExW]
lea ecx, [ebp - 0x68]
call fcn.10028c61
mov dword [ebp - 0x14], ebx
jmp 0x10041ee6
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x38], 0xfffffffd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x10041ed8
cmp dword [ebp - 0x20], ebx
jne 0x10041f34
mov dword [ebp - 0x38], 2
cmp dword [ebp - 0x38], ebx
jl 0x10041f16
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10041f11
push 0xb18
push ebx
call dword [sym.imp.KERNEL32.dll_IsValidLocale]
dec dword [ebp - 0x38]
jns 0x10041efd
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8c]
call fcn.10028c61
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xffffffee
jg 0x10041d54
jmp 0x10041f43
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8c]
call fcn.10028c61
mov dword [ebp - 0x18], 0x33efc07e
lea ecx, [ebp - 0x50]
push 2
call fcn.10028b5c
mov dword [ebp - 0x2c], 0xfffffffc
push 2
mov dword [ebp - 0x2c], 0x90ae
mov dword [ebp - 0x14], ebx
pop edx
jmp 0x10041f7a
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x50]
mov dword [eax + ecx*4], 0xffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10041f6a
mov dword [ebp - 0x14], ebx
jmp 0x10041f95
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa0], 0x628405ce
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10041f84
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x18]
cmp dword [ecx + 4], eax
jl 0x10041faf
mov eax, dword [ebp - 0x50]
cmp dword [eax], ebx
je 0x10041fb2
xor ebx, ebx
inc ebx
mov dword [ebp - 0x9c], ebx
xor edx, edx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
lea eax, [ecx + 1]
cmp eax, ecx
lea eax, [ecx + ecx]
lea ecx, [ebp - 0x50]
setle dl
sub edx, eax
mov eax, dword [ebp - 0x18]
sub eax, edx
neg eax
sbb eax, eax
add eax, 0x488b
imul eax, eax, 0xf59e
mov dword [ebp - 0x2c], eax
call fcn.10028c61
mov eax, edi
mov ecx, 0x3e8
cdq
idiv ecx
mov ecx, dword [ebp - 0x44]
mov esi, edx
mov edi, eax
call section..ikdtl
mov ecx, dword [ebp - 0xc]
add eax, esi
add eax, edi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret