Function at 0x405207
Capabilities:
Accept command line arguments
Create thread
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x84], edx
xor esi, esi
mov dword [ebp - 8], ebx
push edi
mov dword [ebp - 0x7c], ecx
inc esi
mov dword [ebp - 0x10], ebx
jmp 0x40523a
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xe0], 0x5baf43b
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x405229
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [ebp - 8], ebx
cmp dword [ebp - 8], ebx
jl 0x405279
mov byte [ebp - 0xa], bl
cmp byte [ebp - 0xa], bl
je 0x405266
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetTextColor]
mov byte [ebp - 0xa], bl
cmp byte [ebp - 0xa], bl
je 0x405274
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
dec dword [ebp - 8]
jns 0x40524d
mov byte [ebp - 0xa], bl
cmp byte [ebp - 0xa], bl
je 0x40528d
push 0x18f1
push ebx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
mov dword [ebp - 0x18], 0x3901
mov dword [ebp - 0x14], 0x9338886a
mov dword [ebp - 0x30], 5
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x24], 0x4b3bebda
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 4], ebx
jmp 0x4052db
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x68], 0x1a6b719d
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x4052cd
mov dword [ebp - 4], ebx
jmp 0x4052f7
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xb4], 0xac8c
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x4052e6
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
sub eax, 0xfffb
neg eax
sbb eax, eax
inc eax
sub eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x5c]
jne 0x40531a
cmp dword [ebp - 0x68], ebx
je 0x40531c
mov ebx, esi
mov edx, dword [ebp - 0x18]
add edx, ebx
sub edx, dword [ebp - 0x18]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
imul edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
cmp edx, eax
mov eax, dword [ebp - 0x14]
setge cl
xor edx, edx
cmp ecx, 0xf687
setle dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x68]
setne bl
xor ecx, ecx
cmp ebx, eax
setg cl
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xffffffff
sbb ecx, ecx
xor edx, edx
neg ecx
add ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, ecx
mov eax, dword [ebp - 0x18]
setge dl
xor ecx, ecx
cmp edx, eax
setge cl
sub ecx, 0x32116b34
jne 0x40538f
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x98]
xor ebx, ebx
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xb0], eax
test eax, eax
je 0x4053de
mov dword [ebp - 0x24], 0x9fa18394
mov dword [ebp - 0x20], 0xb6d700d1
mov dword [ebp - 0x10], ebx
jmp 0x4053cb
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x80], 0xffffffff
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x4053bd
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x20], eax
jmp 0x405478
mov dword [ebp - 0x10], esi
xor edx, edx
mov dword [ebp - 8], 2
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x28], 0x12446b8c
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0x24]
cmp eax, ecx
setl dl
xor eax, eax
cmp edx, 0xbcdcec45
mov edx, dword [ebp - 0xa0]
setne al
imul edx, eax
mov eax, dword [ebp - 0x5c]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
sete cl
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], ebx
je 0x405447
mov eax, esi
cmp dword [ebp - 0x14], ebx
jne 0x405449
mov eax, ebx
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
sub eax, 0x97ea
neg eax
push 8
sbb eax, eax
inc eax
sub ecx, eax
neg ecx
pop eax
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x10]
cmp eax, ecx
sbb eax, eax
neg eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 4], ebx
mov dword [ebp - 0x10], ebx
jmp 0x40548e
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x50], 0x4a8c6a53
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x405480
mov dword [ebp - 4], ebx
jmp 0x405598
mov dword [ebp - 8], 5
mov dword [ebp - 8], ebx
cmp dword [ebp - 8], ebx
jl 0x405595
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], ebx
jl 0x40558c
mov dword [ebp - 0x14], 0x66c93ee
mov dword [ebp - 0x24], 0x23cea2ff
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x405583
mov dword [ebp - 0x10], 0x13717be9
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x10], ebx
jl 0x40557a
mov dword [ebp - 0x18], 0x62b000c
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x18], ebx
jmp 0x40556c
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 0x58099740
mov eax, dword [ebp - 0x1c]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setg dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x20], ecx
xor ecx, ecx
mov eax, dword [ebp - 4]
mov edx, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 4]
imul edx, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x50]
cmp eax, edx
mov eax, dword [ebp - 0x20]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x10]
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setg bl
xor ecx, ecx
cmp ebx, eax
setge cl
cmp ecx, 0xffff
sbb eax, eax
inc eax
add eax, dword [ebp - 8]
mov dword [ebp - 0x24], eax
inc dword [ebp - 0x18]
xor ebx, ebx
cmp dword [ebp - 0x18], ebx
jle 0x4054f9
dec dword [ebp - 0x10]
jns 0x4054ea
dec dword [ebp - 0x14]
jns 0x4054d7
dec dword [ebp - 0x1c]
jns 0x4054bd
dec dword [ebp - 8]
jns 0x4054ae
inc dword [ebp - 4]
cmp dword [ebp - 4], ebx
jle 0x40549b
mov dword [ebp - 4], ebx
jmp 0x4055b7
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x24], 5
dec dword [ebp - 4]
cmp dword [ebp - 4], 0xffffffff
jge 0x4055a6
mov dword [ebp - 0x30], ebx
mov dword [ebp - 4], 0x4b4e1265
mov dword [ebp - 8], ebx
jmp 0x4055da
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x78], 0x67ee
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x4055cc
mov eax, dword [ebp - 4]
xor edx, edx
mov ecx, dword [ebp - 4]
sub ecx, dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp ecx, eax
setl dl
xor eax, eax
cmp edx, 0x4307
setge al
cmp eax, 0xfffffffb
mov eax, dword [ebp - 0x74]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x78]
setg dl
sub edx, eax
neg edx
sbb edx, edx
inc edx
sub dword [ebp - 4], edx
cmp dword [ebp - 4], esi
jbe 0x405640
push 2
mov dword [ebp - 4], ebx
pop ecx
jmp 0x405636
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x78], 0x3d0b
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x405628
jmp 0x4056dc
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0xd4], esi
mov dword [ebp - 0xd0], esi
mov dword [ebp - 8], 0xf26af903
mov dword [ebp - 4], esi
cmp dword [ebp - 4], ebx
jl 0x4056ca
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0xd8], 0x894ff545
mov dword [ebp - 0x30], 0x894ff545
cmp dword [ebp - 0x30], ebx
jne 0x405685
mov esi, ebx
mov eax, dword [ebp - 4]
xor edx, edx
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x24]
cmp eax, ecx
mov eax, dword [ebp - 8]
setge dl
xor ebx, ebx
cmp esi, edx
setg bl
xor ecx, ecx
sub ebx, eax
mov eax, dword [ebp - 8]
cmp ebx, eax
setg cl
xor ebx, ebx
mov dword [ebp - 8], ecx
xor esi, esi
mov byte [ebp - 0xa], bl
inc esi
cmp byte [ebp - 0xa], bl
je 0x4056c5
push ebx
push ebx
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
dec dword [ebp - 4]
jns 0x405667
mov byte [ebp - 0xa], bl
cmp byte [ebp - 0xa], 0
je 0x4056d9
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push 2
pop ecx
mov dword [ebp - 0x24], 0x99ea7eb8
mov dword [ebp - 4], ebx
jmp 0x4056f9
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xac], 0xf9b3
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x4056e8
mov dword [ebp - 4], ebx
jmp 0x405711
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x34], 0x5c8094a
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x405703
mov dword [ebp - 0x34], esi
cmp dword [ebp - 0x34], ebx
jl 0x405750
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x34]
dec eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp + eax*4 - 0xac]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp + eax*4 - 0xac]
mov dword [ebp - 0x24], esi
dec dword [ebp - 0x34]
jns 0x40571e
mov dword [ebp - 8], ebx
jmp 0x405766
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xe4], 0x5baf43b
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x405755
mov dword [ebp - 0x30], ebx
cmp dword [ebp - 0x30], ebx
jl 0x405cfd
jmp 0x40577c
push 2
pop ecx
mov dword [ebp - 0x14], 0xe2799ac7
mov dword [ebp - 0x14], 3
jmp 0x4057aa
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x18], ebx
jmp 0x40579c
cmp dword [ebp - 0x14], ebx
jne 0x4057a2
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x1d
jne 0x405794
cmp dword [ebp - 0x18], ebx
jne 0x4057b0
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffe2
jl 0x40578c
mov dword [ebp - 8], 0x682c5a4e
mov dword [ebp - 0x28], 0x9673c824
mov dword [ebp - 0x2c], 0xd9aad11c
mov dword [ebp - 0x20], ebx
mov dword [ebp - 4], ebx
jmp 0x4057db
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x4c], 0x102071b1
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x4057cd
mov dword [ebp - 4], ebx
jmp 0x4057f3
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x58], 5
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x4057e5
cmp dword [ebp - 0x4c], ebx
je 0x4059c6
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], 0xa421e0b
mov dword [ebp - 8], ebx
jmp 0x40581e
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x3c], 0x1013923c
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x405810
mov eax, dword [ebp - 0x4c]
xor edx, edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x38]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x10]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x48]
setle dl
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 4]
cmp eax, ecx
mov eax, dword [ebp - 0x10]
setg dl
xor ecx, ecx
cmp eax, edx
setle cl
mov dword [ebp - 0x58], ecx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x38]
jne 0x405884
mov edx, ebx
cmp dword [ebp - 0x38], ebx
je 0x405886
mov edx, esi
mov eax, dword [ebp - 0x48]
xor ecx, ecx
cmp eax, edx
setl cl
neg ecx
jne 0x40589b
mov eax, esi
cmp dword [ebp - 0x4c], ebx
jne 0x40589d
mov eax, ebx
cmp eax, dword [ebp - 0x54]
jne 0x4058a9
mov eax, ebx
cmp dword [ebp - 0x38], ebx
je 0x4058ab
mov eax, esi
cmp eax, 0xc5c2f002
sbb eax, eax
neg eax
cmp esi, eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0xfffffff6
setne cl
xor edx, edx
cmp ecx, 0xffff
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
setne dl
add ecx, edx
xor edx, edx
cmp ecx, eax
mov eax, 0xa335c22c
setg dl
cmp eax, edx
mov eax, dword [ebp - 0x48]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x4c]
setge dl
xor ecx, ecx
cmp edx, eax
sete cl
xor edx, edx
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 8]
add ecx, eax
mov eax, dword [ebp - 0x38]
cmp ecx, eax
setl dl
cmp edx, dword [ebp - 4]
jle 0x4059a8
mov dword [ebp - 0x20], 0x67f3e8e0
mov dword [ebp - 0x28], 0xa919e541
mov dword [ebp - 4], ebx
jmp 0x4059a1
mov ecx, dword [ebp - 0x58]
xor edx, edx
mov eax, dword [ebp - 0x58]
cmp ecx, eax
setge dl
add edx, 0xfffe
cmp edx, 0xac9fd407
je 0x405948
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 4]
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x3c]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x3c]
mov eax, dword [ebp - 0x20]
cmp eax, 2
mov eax, dword [ebp - 0x20]
setg dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp dword [ebp + eax*4 - 0x3c], ebx
jne 0x405989
mov eax, dword [ebp - 0x38]
neg dword [ebp - 8]
je 0x405999
mov eax, dword [ebp - 4]
cmp dword [ebp + eax*4 - 0x3c], ebx
mov eax, esi
jne 0x40599b
mov eax, ebx
mov dword [ebp - 0x28], eax
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jle 0x40592a
jmp 0x4059e7
mov dword [ebp - 0x20], 0x95504247
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x28], eax
jmp 0x4059e7
mov dword [ebp - 0x2c], esi
mov dword [ebp - 8], ebx
jmp 0x4059df
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xf8], 0x9dab
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x4059ce
dec dword [ebp - 0x20]
mov byte [ebp - 9], bl
mov eax, 0x662a
mov dword [ebp - 8], 0xcfe0
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x24], 0x90515466
mov dword [ebp - 0x2c], esi
mov byte [ebp - 0xa], bl
cmp byte [ebp - 0xa], 0
je 0x405a35
push ebx
push 0x23df
push ebx
push ebx
push 0x613
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov eax, dword [ebp - 8]
xor edx, edx
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 8]
cmp ecx, eax
mov eax, dword [ebp - 0x88]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x90]
setne cl
xor ebx, ebx
cmp ecx, eax
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 8]
setg bl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 8]
setl dl
lea ecx, [edx + ebx]
xor edx, edx
cmp ecx, eax
setne dl
xor eax, eax
inc edx
cmp edx, 0xb0f7
setg al
xor ebx, ebx
mov dword [ebp - 0x24], eax
cmp byte [ebp - 9], bl
je 0x405ce5
mov dword [ebp - 4], 0xffffffff
push 0xfffffffffffffffa
pop eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0x4126315b
mov dword [ebp - 0x20], 0x4ff24264
mov dword [ebp - 0x28], eax
mov dword [ebp - 4], 0xfffffff1
cmp dword [ebp - 4], 0xffffffe5
jge 0x405cc0
mov dword [ebp - 0x10], esi
push 0xfffffffffffffffe
pop eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 8], 0x6d9e96b
mov dword [ebp - 0x28], 0x7972e7eb
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], 0x97a1
mov dword [ebp - 0x24], ebx
mov dword [ebp - 8], ebx
jmp 0x405aff
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x44], 0xfffffff9
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x405af1
mov ecx, dword [ebp - 0x40]
xor edx, edx
mov eax, dword [ebp - 0x18]
cmp ecx, eax
setg dl
neg edx
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
inc dword [ebp - 0x10]
cmp ecx, eax
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x44]
cmovne esi, ebx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 4], ebx
je 0x405b3e
xor edx, edx
inc edx
jmp 0x405b40
mov edx, ebx
mov eax, dword [ebp - 0x40]
xor ecx, ecx
sub edx, eax
mov eax, dword [ebp - 4]
cmp edx, eax
mov eax, dword [ebp - 4]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 4]
setne dl
xor ecx, ecx
cmp edx, eax
setl cl
sub ecx, dword [ebp - 0x40]
neg ecx
sbb ecx, ecx
inc ecx
imul eax, ecx, 0xbbe2
sub esi, eax
mov eax, dword [ebp - 4]
sub esi, 0xfffffff8
neg esi
sbb esi, esi
xor ecx, ecx
inc esi
cmp esi, eax
mov eax, dword [ebp - 4]
setge cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x40]
setle dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 8]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 8], ebx
je 0x405bcb
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], ebx
je 0x405bcb
xor esi, esi
inc esi
mov edx, esi
jmp 0x405bd0
xor esi, esi
mov edx, ebx
inc esi
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x40]
setle cl
imul ecx, eax
mov eax, dword [ebp - 0x10]
sub ecx, eax
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x20], ebx
jne 0x405bf9
cmp dword [ebp - 0x40], ebx
jne 0x405bf9
cmp dword [ebp - 0x14], ebx
jne 0x405bf9
mov ebx, esi
mov eax, dword [ebp - 0x1c]
neg ebx
xor ecx, ecx
cmp ebx, eax
mov eax, dword [ebp - 0x14]
setg cl
xor ebx, ebx
cmp ecx, 0x7338d581
setl bl
xor edx, edx
cmp eax, ebx
mov eax, dword [ebp - 0x44]
setle dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
neg eax
sbb eax, eax
xor ebx, ebx
neg eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x40]
cmp dword [ebp - 0x28], eax
jle 0x405c5f
mov edx, esi
cmp dword [ebp - 0x24], ebx
jne 0x405c61
mov edx, ebx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
mov byte [ebp - 9], bl
setne cl
cmp ecx, esi
jle 0x405c94
cmp byte [ebp - 9], 0
je 0x405cb8
push 0x14a4
push 0x8f2
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetPixel]
jmp 0x405cb8
cmp byte [ebp - 9], 0
je 0x405cb8
push ebx
push ebx
push 0x1aca
push ebx
push 0xf34
push ebx
push 0x13a
push 0x1ecf
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
dec dword [ebp - 4]
jmp 0x405abe
mov byte [ebp - 9], bl
cmp byte [ebp - 9], 0
je 0x405cd4
push esi
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetTextColor]
mov byte [ebp - 9], bl
cmp byte [ebp - 9], 0
je 0x405cf4
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
dec dword [ebp - 0x30]
jns 0x405779
mov byte [ebp - 9], bl
cmp byte [ebp - 9], 0
je 0x405d12
push 0x18f1
push ebx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x1c], 0xe44fa3fd
mov dword [ebp - 0x2c], 0x5405ea3
mov dword [ebp - 8], ebx
jmp 0x405d41
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x70], 0xffff
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x405d33
mov byte [ebp - 9], bl
cmp byte [ebp - 9], 0
je 0x405d59
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov ecx, ebx
cmp dword [ebp - 4], ebx
je 0x405d62
mov ecx, esi
cmp dword [ebp - 4], 0xa53061ec
sbb eax, eax
inc eax
cmp eax, ecx
jl 0x405d7f
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
xor edx, edx
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
cmp ecx, eax
push 8
setle dl
pop edi
cmp edi, edx
sbb eax, eax
xor edx, edx
inc eax
imul ecx, eax, 0xafbf
mov eax, dword [ebp - 4]
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setge dl
xor ecx, ecx
sub edx, 0x723af636
test edx, edx
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 4]
setne dl
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, 0x5f19716e
je 0x405e99
mov dword [ebp - 0x24], 0xe12fd89d
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 8], ebx
jmp 0x405e0c
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x108], 0x9e98c534
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x405dfb
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, 0x53c8
mov eax, dword [ebp - 0x1c]
setl cl
cmp ecx, edi
sbb ecx, ecx
xor edx, edx
inc ecx
cmp eax, ecx
setne dl
xor ecx, ecx
cmp edx, 0x864adb5d
setne cl
mov dword [ebp - 0x70], ecx
mov eax, dword [ebp - 0x18]
sub ecx, eax
sub ecx, 0xc0ae
je 0x405e62
mov ecx, esi
cmp dword [ebp - 0x14], ebx
jne 0x405e64
mov ecx, ebx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov eax, 0x94d85d5f
cmp eax, ecx
mov eax, dword [ebp - 0x24]
sbb ecx, ecx
inc ecx
sub eax, ecx
jne 0x405e80
cmp dword [ebp - 0x1c], ebx
je 0x405e82
mov ebx, esi
mov dword [ebp - 0x14], ebx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x108]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
jmp 0x405fd8
mov dword [ebp - 0x20], eax
push 0xfffffffffffffffc
mov dword [ebp - 0x24], 0x1d73cb4e
mov dword [ebp - 0x18], ebx
pop edi
jmp 0x405fb5
mov dword [ebp - 0x10], 0x9618de77
mov dword [ebp - 0x1c], ebx
jmp 0x405ed1
mov byte [ebp - 9], bl
cmp byte [ebp - 9], 0
je 0x405ece
push 0x2499
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jle 0x405eba
mov dword [ebp - 0x1c], ebx
jmp 0x405fa9
mov dword [ebp - 0xcc], esi
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0xc4], esi
mov dword [ebp - 0xc0], esi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x14], ebx
jmp 0x405f0f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xbc], 0xd933b151
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x405efe
mov dword [ebp - 0x14], ebx
jmp 0x405f2b
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xf0], 0x39a040d4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x405f1a
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x70], ebx
jne 0x405f94
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x70], ebx
jne 0x405f50
mov eax, ebx
cmp dword [ebp - 0x20], ebx
je 0x405f52
mov eax, esi
mov dword [ebp - 0x24], eax
xor ecx, ecx
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0xe8], edx
mov eax, dword [ebp - 0x10]
cmp edx, eax
sete cl
mov dword [ebp - 0xcc], ecx
mov ecx, ebx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x70]
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x10]
je 0x405f96
mov ecx, esi
mov eax, dword [ebp - 0x10]
imul eax, ecx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x2c], 0xf2bfcff1
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jle 0x405ede
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jle 0x405eae
mov dword [ebp - 0x1c], edi
jmp 0x405fd2
mov dword [ebp - 0x2c], 7
cmp dword [ebp - 0x2c], ebx
jne 0x405fd8
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 5
jge 0x405fc3
mov eax, dword [ebp - 0x84]
mov ecx, 0x3e8
cdq
idiv ecx
mov ecx, dword [ebp - 0x7c]
mov edi, edx
mov esi, eax
call fcn.0040504f
add eax, esi
add eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret