Function at 0x451f94
Capabilities:
Accept command line arguments
Create thread
Query environment variable
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1b8
push ebx
push esi
mov esi, ecx
mov byte [ebp - 0x39], dl
xor ecx, ecx
mov dword [ebp - 0x20], esi
push edi
xor edi, edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], ecx
inc edi
jmp 0x451fc6
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x140], 0x5baf43b
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x451fb5
mov ebx, dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], ecx
jl 0x45200b
mov byte [ebp - 1], cl
cmp byte [ebp - 1], 0
je 0x451ff5
push ecx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call ebx
push eax
call dword [sym.imp.GDI32.dll_SetTextColor]
xor ecx, ecx
mov byte [ebp - 1], cl
cmp byte [ebp - 1], 0
je 0x452006
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
xor ecx, ecx
dec dword [ebp - 0x10]
jns 0x451fd9
mov byte [ebp - 1], cl
cmp byte [ebp - 1], 0
je 0x452022
push 0x18f1
push ecx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
xor ecx, ecx
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x24], 0xe44fa3fd
mov dword [ebp - 0x38], 0x5405ea3
mov dword [ebp - 0x14], ecx
jmp 0x452054
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa0], 0xffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x452043
mov byte [ebp - 1], cl
cmp byte [ebp - 1], 0
je 0x45206c
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call ebx
xor ebx, ebx
mov ecx, ebx
cmp dword [ebp - 8], ebx
je 0x452077
mov ecx, edi
cmp dword [ebp - 8], 0xa53061ec
sbb eax, eax
inc eax
cmp eax, ecx
jl 0x452094
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
xor edx, edx
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
cmp ecx, eax
push 8
setle dl
pop eax
cmp eax, edx
push 7
sbb eax, eax
xor edx, edx
inc eax
imul ecx, eax, 0xafbf
mov eax, dword [ebp - 8]
cmp ecx, eax
mov eax, dword [ebp - 0x24]
setge dl
xor ecx, ecx
sub edx, 0x723af636
test edx, edx
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 8]
setne dl
xor ecx, ecx
cmp edx, eax
pop eax
setle cl
cmp ecx, 0x5f19716e
je 0x4521b7
mov dword [ebp - 0x28], 0xe12fd89d
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x14], ebx
jmp 0x452124
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1a0], 0x9e98c534
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x452113
mov eax, dword [ebp - 0xc]
xor ecx, ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
cmp eax, 0x53c8
mov eax, dword [ebp - 0x24]
setl cl
cmp ecx, 8
sbb ecx, ecx
xor edx, edx
inc ecx
cmp eax, ecx
setne dl
xor ecx, ecx
cmp edx, 0x864adb5d
setne cl
mov dword [ebp - 0xa0], ecx
mov eax, dword [ebp - 0x18]
sub ecx, eax
sub ecx, 0xc0ae
je 0x45217e
mov ecx, edi
cmp dword [ebp - 0xc], ebx
jne 0x452180
mov ecx, ebx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov eax, 0x94d85d5f
cmp eax, ecx
mov eax, dword [ebp - 0x28]
sbb ecx, ecx
inc ecx
sub eax, ecx
jne 0x45219e
mov eax, ebx
cmp dword [ebp - 0x24], ebx
je 0x4521a0
mov eax, edi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x1a0]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x38], eax
jmp 0x45230a
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x28], 0x1d73cb4e
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], edi
jg 0x4522f0
mov dword [ebp - 0x14], 0x9618de77
mov dword [ebp - 0x24], ebx
jmp 0x4521f3
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x4521f0
push 0x2499
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jle 0x4521dd
mov dword [ebp - 0x24], ebx
jmp 0x4522d8
mov dword [ebp - 0x110], edi
mov dword [ebp - 0x10c], edi
mov dword [ebp - 0x108], edi
mov dword [ebp - 0x104], edi
mov dword [ebp - 0x38], 0xfffffffc
mov dword [ebp - 0xc], ebx
jmp 0x452235
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x100], 0xd933b151
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x452224
mov dword [ebp - 0xc], ebx
jmp 0x452251
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x16c], 0x39a040d4
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
jl 0x452240
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0xa0], ebx
jne 0x4522c3
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0xa0], ebx
jne 0x45227c
mov eax, ebx
cmp dword [ebp - 0x10], ebx
je 0x45227e
mov eax, edi
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x28]
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x100]
mov dword [ebp - 0x164], edx
mov eax, dword [ebp - 0x14]
cmp edx, eax
sete cl
mov dword [ebp - 0x110], ecx
mov ecx, ebx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0xa0]
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x14]
je 0x4522c5
mov ecx, edi
mov eax, dword [ebp - 0x14]
imul eax, ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x38], 0xf2bfcff1
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jle 0x452200
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jle 0x4521d1
push 7
pop eax
mov dword [ebp - 0x24], 0xfffffffc
jmp 0x452304
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], ebx
jne 0x45230a
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 5
jge 0x4522f9
mov dword [ebp - 0x18], 0x3901
mov dword [ebp - 0x14], 0x9338886a
mov dword [ebp - 0x10], 5
mov dword [ebp - 0xe8], ebx
mov dword [ebp - 0xe4], ebx
mov dword [ebp - 0xe0], ebx
mov dword [ebp - 0xdc], ebx
mov dword [ebp - 0x38], 0x4b3bebda
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0xc], ebx
jmp 0x45235b
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x8c], 0x1a6b719d
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x45234a
mov dword [ebp - 0xc], ebx
jmp 0x452377
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xf0], 0xac8c
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x452366
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 - 0x80]
jne 0x45239f
mov eax, ebx
cmp dword [ebp - 0x8c], ebx
je 0x4523a1
mov eax, edi
mov edx, dword [ebp - 0x18]
add edx, eax
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 - 0x8c]
setne bl
xor ecx, ecx
cmp ebx, eax
setg cl
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x84]
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 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 0x45241d
mov eax, dword [ebp - 0x80]
mov eax, dword [ebp - 0xdc]
xor edx, edx
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xec], eax
test eax, eax
je 0x452472
mov dword [ebp - 0x38], 0x9fa18394
mov dword [ebp - 0x1c], 0xb6d700d1
mov dword [ebp - 0x14], edx
jmp 0x45245c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xb4], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x45244b
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0x1c], eax
jmp 0x452510
mov dword [ebp - 0x18], edi
mov dword [ebp - 0xc], 2
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x28], 0x12446b8c
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x80]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x80]
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0xec]
mov eax, dword [ebp - 0x38]
cmp eax, ecx
setl dl
xor eax, eax
cmp edx, 0xbcdcec45
mov edx, dword [ebp - 0xe4]
setne al
imul edx, eax
mov eax, dword [ebp - 0x80]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
sete cl
xor edx, edx
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], edx
je 0x4524df
mov eax, edi
cmp dword [ebp - 0x14], edx
jne 0x4524e1
mov eax, edx
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
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 - 0x18]
cmp eax, ecx
sbb eax, eax
neg eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 8], edx
mov dword [ebp - 0x14], edx
jmp 0x452526
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x5c], 0x4a8c6a53
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x452518
mov dword [ebp - 8], edx
jmp 0x452630
mov dword [ebp - 0x10], 5
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], edx
jl 0x45262d
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], edx
jl 0x452624
mov dword [ebp - 0xc], 0x66c93ee
mov dword [ebp - 0x38], 0x23cea2ff
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], edx
jl 0x45261b
mov dword [ebp - 0x14], 0x13717be9
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], edx
jl 0x452612
mov dword [ebp - 0x18], 0x62b000c
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x18], edx
jmp 0x452604
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 0x58099740
mov eax, dword [ebp - 0x24]
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 - 0x28], ecx
xor ecx, ecx
mov eax, dword [ebp - 8]
mov edx, dword [ebp + eax*4 - 0x5c]
mov eax, dword [ebp - 8]
imul edx, dword [ebp + eax*4 - 0x5c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x5c]
cmp eax, edx
mov eax, dword [ebp - 0x28]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0xc]
setg bl
xor ecx, ecx
cmp ebx, eax
setge cl
cmp ecx, 0xffff
sbb eax, eax
inc eax
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x38], eax
inc dword [ebp - 0x18]
xor edx, edx
cmp dword [ebp - 0x18], edx
jle 0x452591
dec dword [ebp - 0x14]
jns 0x452582
dec dword [ebp - 0xc]
jns 0x45256f
dec dword [ebp - 0x24]
jns 0x452555
dec dword [ebp - 0x10]
jns 0x452546
inc dword [ebp - 8]
cmp dword [ebp - 8], edx
jle 0x452533
mov dword [ebp - 8], edx
jmp 0x45264f
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x38], 5
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffff
jge 0x45263e
mov edi, dword [ebp + 8]
mov ebx, dword [0x4b290c]
mov dword [ebp - 8], 0x4b4e1265
mov dword [ebp - 0x38], ebx
mov dword [edi], edx
mov dword [edi + 4], edx
mov dword [edi + 8], edx
mov dword [edi + 0xc], edx
mov dword [ebp - 0x10], edx
jmp 0x452689
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xa8], 0x67ee
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x452678
mov eax, dword [ebp - 8]
xor edx, edx
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp ecx, eax
setl dl
xor eax, eax
cmp edx, 0x4307
setge al
cmp eax, 0xfffffffb
mov eax, dword [ebp - 0xa4]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0xa8]
setg dl
sub edx, eax
neg edx
sbb edx, edx
xor eax, eax
inc edx
inc eax
sub dword [ebp - 8], edx
xor ecx, ecx
cmp dword [ebp - 8], eax
jbe 0x4526fb
mov dword [ebp - 8], ecx
jmp 0x4526f0
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xa8], 0x3d0b
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x4526df
jmp 0x4527a6
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x14], 0xf26af903
mov dword [ebp - 8], eax
cmp dword [ebp - 8], ecx
jl 0x452795
xor edi, edi
inc edi
mov dword [ebp - 0x10], ecx
mov esi, ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x12c], 0x894ff545
mov dword [ebp - 0x10], 0x894ff545
cmp dword [ebp - 0x10], ecx
je 0x452745
mov esi, edi
mov eax, dword [ebp - 8]
xor edx, edx
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
mov eax, dword [ebp - 0x14]
setge dl
xor ebx, ebx
cmp esi, edx
setg bl
xor ecx, ecx
sub ebx, eax
mov eax, dword [ebp - 0x14]
cmp ebx, eax
setg cl
mov dword [ebp - 0x14], ecx
xor ecx, ecx
mov byte [ebp - 1], cl
cmp byte [ebp - 1], cl
je 0x452787
push ecx
push ecx
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
xor ecx, ecx
dec dword [ebp - 8]
jns 0x452725
mov edi, dword [ebp + 8]
mov ebx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x20]
mov byte [ebp - 1], cl
cmp byte [ebp - 1], 0
je 0x4527a6
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
xor ecx, ecx
cmp byte [ebp - 0x39], 0
je 0x452a2b
xor edx, edx
inc edx
cmp ebx, edx
jne 0x452a2b
mov dword [ebp - 0x10], 0x682c5a4e
mov dword [ebp - 0x2c], 0x9673c824
mov dword [ebp - 0x30], 0xd9aad11c
mov dword [ebp - 0x28], ecx
mov dword [edi + 8], 4
mov dword [ebp - 0xc], ecx
jmp 0x4527ed
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x58], 0x102071b1
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x4527df
mov dword [ebp - 0xc], ecx
jmp 0x452806
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x6c], 5
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x4527f8
cmp dword [ebp - 0x58], ecx
je 0x452a02
mov dword [ebp - 0x14], edx
mov dword [ebp - 8], 0xa421e0b
mov dword [ebp - 0x10], ecx
jmp 0x452832
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x48], 0x1013923c
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x452824
mov eax, dword [ebp - 0x58]
xor edx, edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x58]
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x44]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x54]
setle dl
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 8]
cmp eax, ecx
mov eax, dword [ebp - 0x14]
setg dl
xor ecx, ecx
cmp eax, edx
setle cl
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x44]
jne 0x45289b
cmp dword [ebp - 0x44], eax
jne 0x45289b
mov edx, eax
jmp 0x4528a0
xor eax, eax
lea edx, [eax + 1]
mov eax, dword [ebp - 0x54]
xor ecx, ecx
cmp eax, edx
setl cl
neg ecx
jne 0x4528bc
xor ecx, ecx
cmp dword [ebp - 0x58], ecx
je 0x4528be
xor edx, edx
inc edx
mov eax, edx
jmp 0x4528c3
xor ecx, ecx
xor edx, edx
mov eax, ecx
inc edx
cmp eax, dword [ebp - 0x68]
jne 0x4528cf
mov eax, ecx
cmp dword [ebp - 0x44], ecx
je 0x4528d1
mov eax, edx
cmp eax, 0xc5c2f002
sbb eax, eax
neg eax
cmp edx, eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0xfffffff6
setne cl
xor edx, edx
cmp ecx, 0xffff
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
setne dl
add ecx, edx
xor edx, edx
cmp ecx, eax
mov eax, 0xa335c22c
setg dl
cmp eax, edx
mov eax, dword [ebp - 0x54]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x58]
setge dl
xor ecx, ecx
cmp edx, eax
sete cl
xor edx, edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x10]
add ecx, eax
mov eax, dword [ebp - 0x44]
cmp ecx, eax
setl dl
cmp edx, dword [ebp - 8]
jle 0x4529e2
mov dword [ebp - 0x28], 0x67f3e8e0
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x2c], 0xa919e541
mov dword [ebp - 8], ecx
inc eax
cmp dword [ebp - 8], eax
jg 0x452a24
xor esi, esi
inc esi
mov ecx, dword [ebp - 0x6c]
xor edx, edx
mov eax, dword [ebp - 0x6c]
cmp ecx, eax
setge dl
add edx, 0xfffe
cmp edx, 0xac9fd407
je 0x45297d
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 8]
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x48]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x48]
mov eax, dword [ebp - 0x28]
cmp eax, 2
mov eax, dword [ebp - 0x28]
setg dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x2c], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp dword [ebp + eax*4 - 0x48], ecx
jne 0x4529c0
mov eax, dword [ebp - 0x44]
neg dword [ebp - 0x10]
je 0x4529d0
mov eax, dword [ebp - 8]
cmp dword [ebp + eax*4 - 0x48], ecx
mov eax, esi
jne 0x4529d2
mov eax, ecx
mov dword [ebp - 0x2c], eax
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jle 0x45295f
mov esi, dword [ebp - 0x20]
jmp 0x452a24
mov dword [ebp - 0x28], 0x95504247
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
neg eax
sbb eax, eax
neg eax
xor ecx, ecx
mov dword [ebp - 0x2c], eax
jmp 0x452a24
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x10], ecx
jmp 0x452a1b
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x190], 0x9dab
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x452a0a
dec dword [ebp - 0x28]
mov dword [edi + 0xc], 0x4b290c
mov dword [ebp - 0x1c], 0x99ea7eb8
mov dword [ebp - 0xc], ecx
jmp 0x452a48
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xf8], 0xf9b3
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x452a37
xor edx, edx
mov dword [ebp - 0xc], ecx
inc edx
jmp 0x452a64
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x40], 0x5c8094a
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edx
jl 0x452a56
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x40], ecx
jl 0x452aa7
mov dword [ebp - 0x28], 2
mov eax, dword [ebp - 0x40]
dec eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp + eax*4 - 0xf8]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp + eax*4 - 0xf8]
mov dword [ebp - 0x1c], edx
dec dword [ebp - 0x40]
jns 0x452a71
cmp esi, ebx
jge 0x4535c0
mov dword [ebp - 0x10], 0xcfe0
mov eax, 0x662a
mov dword [ebp - 0xd0], eax
xor edi, edi
mov dword [ebp - 0xcc], eax
inc edi
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0x1c], 0x90515466
mov dword [ebp - 0x30], edi
mov byte [ebp - 1], cl
cmp byte [ebp - 1], 0
je 0x452afd
push ecx
push 0x23df
push ecx
push ecx
push 0x613
push ecx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov eax, dword [ebp - 0x10]
xor edx, edx
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0x10]
cmp ecx, eax
mov eax, dword [ebp - 0xc4]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0xcc]
push 0xfffffffffffffffa
setne cl
xor ebx, ebx
cmp ecx, eax
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0x10]
setg bl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x10]
setl dl
lea ecx, [edx + ebx]
xor edx, edx
cmp ecx, eax
mov ebx, 0x4b2910
setne dl
xor eax, eax
inc edx
cmp edx, 0xb0f7
setg al
mov dword [ebp - 0x1c], eax
mov dword [ebp - 8], 0xffffffff
pop eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0x4126315b
mov dword [ebp - 0x28], 0x4ff24264
mov dword [ebp - 0x2c], eax
mov dword [ebp - 8], 0xfffffff1
cmp dword [ebp - 8], 0xffffffe5
jge 0x452d93
xor ebx, ebx
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x24], 0xfffffffe
mov dword [ebp - 0x10], 0x6d9e96b
mov dword [ebp - 0x2c], 0x7972e7eb
mov dword [ebp - 0x2c], 0xfffffffe
mov dword [ebp - 0x34], 0x97a1
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x10], ebx
jmp 0x452bc8
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x50], 0xfffffff9
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x452bba
mov ecx, dword [ebp - 0x4c]
xor edx, edx
mov eax, dword [ebp - 0x18]
mov esi, edi
cmp ecx, eax
setg dl
neg edx
mov dword [ebp - 0x18], edx
mov edx, edi
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
inc dword [ebp - 0xc]
cmp ecx, eax
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x50]
cmovne esi, ebx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 8], ebx
jne 0x452c08
mov edx, ebx
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
sub edx, eax
mov eax, dword [ebp - 8]
cmp edx, eax
mov eax, dword [ebp - 8]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 8]
setne dl
xor ecx, ecx
cmp edx, eax
setl cl
sub ecx, dword [ebp - 0x4c]
neg ecx
sbb ecx, ecx
inc ecx
imul eax, ecx, 0xbbe2
sub esi, eax
mov eax, dword [ebp - 8]
sub esi, 0xfffffff8
neg esi
sbb esi, esi
xor ecx, ecx
inc esi
cmp esi, eax
mov eax, dword [ebp - 8]
setge cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x4c]
setle dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x10], ebx
je 0x452c8e
mov eax, dword [ebp - 0x18]
mov edx, edi
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], ebx
jne 0x452c90
mov edx, ebx
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x4c]
setle cl
imul ecx, eax
mov eax, dword [ebp - 0xc]
sub ecx, eax
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x28], ebx
jne 0x452cb9
cmp dword [ebp - 0x4c], ebx
jne 0x452cb9
mov edx, edi
cmp dword [ebp - 0x14], ebx
je 0x452cbb
mov edx, ebx
mov eax, dword [ebp - 0x24]
neg edx
xor ecx, ecx
cmp edx, 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 - 0x50]
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 - 8]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
xor ebx, ebx
neg eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x2c], eax
jle 0x452d21
mov edx, edi
cmp dword [ebp - 0x1c], ebx
jne 0x452d23
mov edx, ebx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
mov byte [ebp - 1], bl
setne cl
cmp ecx, edi
jle 0x452d5a
cmp byte [ebp - 1], 0
je 0x452d7e
push 0x14a4
push 0x8f2
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetPixel]
jmp 0x452d7e
cmp byte [ebp - 1], 0
je 0x452d7e
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 - 8]
cmp dword [ebp - 8], 0xffffffe5
jl 0x452b8c
mov esi, dword [ebp - 0x20]
mov ebx, 0x4b2910
xor edx, edx
mov byte [ebp - 1], dl
cmp byte [ebp - 1], dl
je 0x452dae
push edi
push edx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
xor edx, edx
test esi, esi
jle 0x453134
jmp 0x452dbb
xor edi, edi
inc edi
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x10], edx
jmp 0x452ddd
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xbc], 0xf0ea
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x452dcc
mov dword [ebp - 0x70], edi
cmp dword [ebp - 0x70], edx
jl 0x452e10
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp + eax*4 - 0xbc]
mov eax, dword [ebp - 0x70]
mov dword [ebp + eax*4 - 0xbc], ecx
mov eax, dword [ebp - 0x70]
cmp dword [ebp + eax*4 - 0xbc], edx
jne 0x452e10
dec dword [ebp - 0x70]
jns 0x452deb
mov edi, dword [ebx]
xor ecx, ecx
mov dword [ebp - 0x30], 0x261f9c28
inc ecx
mov dword [ebp - 0x30], 0xfffffff7
mov dword [ebp - 0x30], 0x5b0e446d
mov dword [ebp - 0x30], 0xfffffff8
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x30], 0x12f3
mov dword [ebp - 0xc], edx
jmp 0x452e51
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x144], 0xb34e6d4f
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ecx
jl 0x452e40
mov dword [ebp - 0xc], edx
jmp 0x452e68
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x1ac], edx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
jl 0x452e5b
dec dword [ebp - 0x1c]
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x452e9a
push 0x9da
push 0x26a3
push 0x59d
push 0x2372
push edx
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
xor ecx, ecx
xor edx, edx
inc ecx
mov esi, dword [ebx + 4]
add ebx, 8
mov dword [ebp - 0x14], 0x7eed
mov dword [ebp - 0x10], 0x74dd0324
mov dword [ebp - 0x34], 0xf191
mov dword [ebp - 0x28], 0x39ee491
mov dword [ebp - 0x1c], 0xfffffffb
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x10], edx
jmp 0x452edf
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xb0], 0x9598aaf0
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x452ece
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], edx
jne 0x452f4f
dec dword [ebp - 0x28]
mov ecx, 0xdd93ba6a
mov eax, dword [ebp - 0x28]
dec eax
neg eax
sbb eax, eax
inc eax
cmp ecx, eax
sbb eax, eax
neg eax
add eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x14]
je 0x452f12
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0xac]
imul eax, dword [ebp - 0x10]
push 7
pop ecx
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
sete dl
mov dword [ebp - 0xac], edx
test edx, edx
je 0x452f42
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp dword [ebp - 0xac], edx
je 0x452f56
xor ecx, ecx
inc ecx
mov eax, ecx
cmp dword [ebp - 0x14], edx
jne 0x452f58
mov eax, edx
mov dword [ebp - 0x2c], eax
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x452f85
push edx
push 0xb0f
push 0x19b7
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetCharWidth32A]
xor edx, edx
test esi, esi
jne 0x452f91
push 8
pop eax
add ebx, eax
mov dword [ebp - 0x24], ebx
mov dword [ebp - 8], 0x446df37d
xor esi, esi
mov dword [ebp - 0x1c], 0xfffffff9
inc esi
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x14], 0x493e623b
mov dword [ebp - 0x120], edx
mov dword [ebp - 0x11c], edx
mov dword [ebp - 0x118], edx
mov dword [ebp - 0x114], edx
mov dword [ebp - 0x30], 0x64bda99d
mov dword [ebp - 0x34], esi
push 9
pop eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x34], 0x955e
mov dword [ebp - 0x34], eax
mov dword [ebp - 0xc], edx
jmp 0x452ffe
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xd8], 0x646b
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x452fed
mov dword [ebp - 0xc], edx
jmp 0x45301a
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x154], 0xffffffff
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x453009
mov eax, dword [ebp - 8]
xor ecx, ecx
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 8]
cmp eax, 0x6c2e
setle cl
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 8], edx
cmp dword [ebp - 8], esi
jg 0x453129
xor ebx, ebx
mov dword [ebp - 0x34], 0xfd43
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x1c], 0x30c4e2bf
mov dword [ebp - 0x28], 0x4f69a750
mov dword [ebp - 0x1c], 0xd3d8
mov dword [ebp - 0x1c], 0x860c01ef
mov dword [ebp - 0x2c], 0xfffffff9
mov dword [ebp - 0x10], ebx
jmp 0x453092
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x13c], esi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x453085
dec dword [ebp - 0x28]
inc dword [ebp - 0x154]
mov dword [ebp - 0x18], ebx
jmp 0x453113
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0xd8], ebx
je 0x4530ea
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x34], ebx
jne 0x4530c6
mov eax, dword [ebp - 0x134]
mov dword [ebp - 0x2c], esi
xor ecx, ecx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0xd8]
cmp eax, 0xffffffff
setle cl
mov dword [ebp - 0x134], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
push 4
mov esi, dword [ebp + eax*4 - 0xd8]
mov eax, dword [ebp - 0x30]
test eax, eax
pop eax
sets cl
xor edx, edx
cmp ecx, esi
setle dl
xor esi, esi
sub eax, edx
mov dword [ebp - 0x2c], eax
inc dword [ebp - 0x18]
inc esi
cmp dword [ebp - 0x18], esi
jle 0x4530a6
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jle 0x453053
mov ebx, dword [ebp - 0x24]
xor edx, edx
add ebx, edi
dec dword [ebp - 0x20]
jne 0x452db8
mov dword [ebp - 0x14], 0x342eb90d
mov dword [ebp - 0x14], edx
jmp 0x45320f
mov dword [ebp - 0x10], 0x30722263
mov dword [ebp - 0x20], edx
jmp 0x453160
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x160], 0xc69aed23
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x45314f
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x453177
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
xor edx, edx
mov dword [ebp - 0x10], edx
jmp 0x453202
mov dword [ebp - 0x20], edx
jmp 0x453192
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x64], 0xffffffff
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x453184
mov dword [ebp - 0x64], 2
cmp dword [ebp - 0x64], edx
jl 0x4531ff
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x4531f0
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
push 0x995
push 0x2629
push 0x931
call esi
mov edi, dword [sym.imp.USER32.dll_GetDC]
push eax
call edi
push eax
push 0x3df
push 0x960
push 0x1ee
push 0x2415
call esi
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
xor edx, edx
mov eax, dword [ebp - 0x64]
mov eax, dword [ebp + eax*4 - 0x160]
dec dword [ebp - 0x64]
jns 0x4531a4
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jle 0x45317f
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffff7
jge 0x453143
mov edi, dword [ebx]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x30], edx
push 3
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], edx
pop ecx
jmp 0x45323d
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x1b8], 0xf251d69f
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x45322c
inc dword [ebp - 0x1c]
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x453259
push 0x22a8
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov dword [ebp - 0x2c], 0xffffffff
xor esi, esi
mov dword [ebp - 0x1c], edx
add ebx, 4
mov dword [ebp - 0x1c], 0x90f02349
inc esi
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x30], 0xfffffffd
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x30], 0xe7bf
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x34], 0xf5ef889a
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x10], 0x2189f42c
mov dword [ebp - 0x34], 0xa8cf1d65
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x1c], 0xb421dd2e
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x1c], 9
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], edx
jmp 0x4532d9
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x178], 0x64087a91
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x4532c8
mov dword [ebp - 0x1c], 0x7478144a
cmp dword [ebp - 0x1c], edx
je 0x45331e
inc dword [ebp - 0x28]
xor ecx, ecx
mov eax, dword [ebp - 0x30]
test eax, eax
setle cl
imul eax, ecx, 0xa6f4
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
mov eax, esi
neg ecx
sbb ecx, ecx
add ecx, 0xffff5452
neg ecx
sbb ecx, ecx
inc ecx
add ecx, dword [ebp - 0x28]
jne 0x453320
mov eax, edx
mov dword [ebp - 0x170], eax
mov edx, dword [ebp - 0x2c]
imul edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebx]
dec ecx
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp edx, ecx
setg al
xor ecx, ecx
mov dword [ebp - 0x34], eax
inc ecx
mov dword [ebp - 0xc], 0x5a23e86f
xor edx, edx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], 0x2da3c3d
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x30], 0x17a68fab
mov byte [ebp - 1], dl
cmp byte [ebp - 1], dl
je 0x453386
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SaveDC]
xor ecx, ecx
xor edx, edx
inc ecx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0x20], edx
jne 0x4533a0
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x4d1b
jge 0x4533b0
cmp dword [ebp - 0xc], edx
jne 0x4533b0
mov ecx, edx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x1c], 0xffffffff
mov eax, dword [ebp - 0x1c]
push 4
mov dword [ebp - 0x30], eax
pop ecx
mov dword [ebp - 8], 9
add ebx, ecx
mov dword [ebp - 0x30], 0xfffffff7
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], edx
jmp 0x453401
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x188], 0x82062403
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x4533f0
mov dword [ebp - 8], edx
jmp 0x45341c
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x188], 0xfffffffd
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x45340b
cmp dword [ebp - 0x30], edx
je 0x453474
mov dword [ebp - 8], 3
cmp dword [ebp - 8], edx
jl 0x453452
xor ebx, ebx
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x453448
push ebx
push 0x170f
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByteEx]
dec dword [ebp - 8]
jns 0x453434
mov ebx, dword [ebp - 0x24]
xor edx, edx
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x4534c9
push 0x25ea
push 0x2033
push edx
push edx
push 0x8fc
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
jmp 0x4534c9
mov dword [ebp - 8], edx
jmp 0x4534c3
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x4534c0
push 0x1d31
push 0x1ff1
push 0xbb1
push 0x250c
push 0x1268
push 0x14ed
push 0x1375
push 0x180f
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_Arc]
xor edx, edx
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x12
jne 0x453479
test esi, esi
jne 0x4535bb
cmp byte [ebp - 0x39], 0
je 0x4534e8
xor eax, eax
inc eax
cmp dword [ebp - 0x38], eax
jne 0x4534e8
mov ecx, dword [ebp + 8]
lea eax, [edi + 0x10]
add dword [ecx + 8], eax
mov eax, dword [ebx]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 4]
push edi
mov dword [ebp - 0x34], eax
call fcn.004998a5
pop ecx
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x98]
lea eax, [ebp - 0xc0]
xor esi, esi
push eax
push edi
mov dword [ebp - 0xc0], esi
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x90], esi
call fcn.0047cc91
mov ecx, esi
mov esi, dword [ebp - 0x98]
mov dword [ebp - 0x38], ecx
test edi, edi
jle 0x45358c
mov eax, ecx
and eax, 0x80000001
jns 0x453547
dec eax
or eax, 0xfffffffe
inc eax
neg eax
sbb eax, eax
and eax, dword [ebp - 0x30]
add eax, ecx
add eax, dword [ebp - 0x30]
imul eax, dword [ebp - 0x34]
cdq
idiv edi
xor eax, eax
cmp word [esi + edx*2], ax
je 0x453573
xor ecx, ecx
lea eax, [edx + 1]
cdq
idiv edi
cmp word [esi + edx*2], cx
jne 0x453564
mov ecx, dword [ebp - 0x38]
xor eax, eax
inc eax
mov word [esi + edx*2], ax
mov al, byte [edx + ebx + 8]
mov edx, dword [ebp - 0x1c]
mov byte [ecx + edx], al
inc ecx
mov dword [ebp - 0x38], ecx
cmp ecx, edi
jl 0x453539
mov eax, dword [ebp + 8]
mov dword [eax], edi
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
mov dword [edi + 4], eax
test esi, esi
je 0x4535be
push esi
call fcn.0049a456
pop ecx
xor ecx, ecx
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x90], ecx
jmp 0x4535c0
mov edi, dword [ebp + 8]
xor ecx, ecx
mov dword [ebp - 0x14], 0xe2799ac7
mov dword [ebp - 0x14], 3
jmp 0x4535ee
mov dword [ebp + 8], ecx
mov dword [ebp + 8], ecx
jmp 0x4535e0
cmp dword [ebp - 0x14], ecx
jne 0x4535e6
inc dword [ebp + 8]
cmp dword [ebp + 8], 0x1d
jne 0x4535d8
cmp dword [ebp + 8], ecx
jne 0x4535f4
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffe2
jl 0x4535d0
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret