Function at 0x412d0d
Capabilities:
Accept command line arguments
Get disk information
Get graphical window text
Identify system language via api
Resume thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6fc
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 0x60], ecx
inc edi
lea ecx, [ebp - 0x1dc]
push edi
call fcn.004113a6
mov dword [ebp - 0x24], 0xfffffff7
lea ecx, [ebp - 0x500]
push 2
call fcn.004113a6
mov dword [ebp - 8], 0
jmp 0x412d5b
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x1dc]
mov dword [eax + ecx*4], 0x53b26bdd
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x412d48
mov dword [ebp - 8], 0
jmp 0x412d7c
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x500]
mov dword [eax + ecx*4], 0x5a60d005
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x412d69
mov eax, dword [ebp - 0x1dc]
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
push 3
and dword [eax], 0
or ebx, 0xffffffff
pop eax
mov dword [ebp - 0x20], edi
lea ecx, [ebp - 0x418]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x24], 0xee28fdeb
mov dword [ebp - 0x24], eax
push edi
call fcn.004113a6
xor eax, eax
mov dword [ebp - 0x24], 5
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0xc], eax
jmp 0x412dda
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x418]
mov dword [ecx + edx*4], eax
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x412dcb
cmp dword [ebp - 0x20], eax
je 0x412e18
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], al
je 0x412e01
push 0x928
push 0xeea
call esi
push eax
call dword [sym.imp.USER32.dll_CheckDlgButton]
xor eax, eax
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x412e21
push eax
call esi
push eax
call dword [sym.imp.USER32.dll_ValidateRect]
xor eax, eax
jmp 0x412e21
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x24], edi
inc dword [ebp - 0x30]
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x412e33
call esi
push eax
call dword [sym.imp.USER32.dll_IsIconic]
lea ecx, [ebp - 0x418]
call fcn.00411478
mov eax, dword [ebp - 0x1dc]
push 3
dec dword [eax]
cmp dword [eax], 0xfffffff2
pop eax
jg 0x412d97
lea ecx, [ebp - 0x500]
call fcn.00411478
lea ecx, [ebp - 0x1dc]
call fcn.00411478
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], 0x4320e32c
mov dword [ebp - 0x34], 0x3bd6525
mov dword [ebp - 0x18], 0xfffffff7
mov dword [ebp - 0x2c], 0x491b
mov dword [ebp - 0x20], 0xce68266c
mov eax, dword [ebp - 0x14]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0xc], eax
xor eax, eax
cmp dword [ebp - 0x14], eax
je 0x412eb1
mov dword [ebp - 0x34], 0x23a266d2
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x10]
xor ebx, ebx
mov ecx, dword [ebp - 8]
test ecx, ecx
mov ecx, dword [ebp - 0x10]
setle bl
xor edx, edx
cmp ecx, ebx
setge dl
sub edx, dword [ebp - 0x10]
je 0x412ed0
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x18]
cmp dword [ebp - 0xc], ecx
je 0x412edf
mov ecx, eax
cmp dword [ebp - 0x14], eax
je 0x412ee1
mov ecx, edi
push 3
pop ebx
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x2c], ebx
ja 0x412ff8
mov dword [ebp - 0x28], 0x253d9751
mov dword [ebp - 0x14], 0xfffffff4
cmp dword [ebp - 0x14], 0x1c
jle 0x412ff0
mov dword [ebp - 0x30], 0xfffffff6
mov dword [ebp - 0xc], eax
jmp 0x412f22
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x4c], 5
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x412f14
or ecx, 0xffffffff
mov dword [ebp - 8], ecx
jmp 0x412f4d
mov dword [ebp - 0x2c], eax
jmp 0x412f40
mov ecx, dword [ebp - 0x2c]
cmp dword [ebp + ecx*4 - 0x4c], eax
jne 0x412f45
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], eax
jle 0x412f34
cmp dword [ebp - 0x4c], eax
jne 0x412f53
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x39
jg 0x412f2f
imul ecx, dword [ebp - 0x28], 0xf725
test ecx, ecx
jne 0x412f61
mov ecx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 0x4c]
sub ecx, dword [ebp - 0x28]
neg ecx
sbb ecx, ecx
inc ecx
neg ecx
neg ecx
sbb ecx, ecx
xor ebx, ebx
inc ecx
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xc]
cmp ecx, edx
setge bl
xor ecx, ecx
cmp ebx, 0xb224
setl cl
xor ebx, ebx
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
setl bl
mov dword [ebp - 0x18], ebx
xor ebx, ebx
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
imul ecx, dword [ebp - 0x28], 0xdb9c
cmp ecx, edi
mov ecx, dword [ebp - 0x14]
setle bl
xor edx, edx
cmp ebx, ecx
setle dl
shl edx, 2
mov dword [ebp - 0x4c], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1c
jg 0x412f08
push 3
pop ebx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
jmp 0x413006
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], al
je 0x413006
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
lea ecx, [ebp - 0x430]
call fcn.004113a6
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x308]
push 4
call fcn.004113a6
mov dword [ebp - 8], 0
cmp dword [ebp - 8], ebx
jge 0x413049
or edx, 0xffffffff
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x430]
mov dword [eax + ecx*4], edx
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jl 0x413035
mov dword [ebp - 8], 0
jmp 0x413065
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x308]
mov dword [eax + ecx*4], 0x3eee2fde
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x413052
mov byte [ebp - 0x19], 0
cmp byte [ebp - 0x19], 0
je 0x41308a
push 0x26af
call esi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov dword [ebp - 0x10], 2
cmp dword [ebp - 0x10], 0
jl 0x4130a9
mov eax, dword [ebp - 0x308]
mov dword [eax + 0xc], 0xa9ef72d4
dec dword [ebp - 0x10]
jns 0x41309d
lea ecx, [ebp - 0x308]
call fcn.00411478
lea ecx, [ebp - 0x430]
call fcn.00411478
push edi
lea ecx, [ebp - 0x1c4]
call fcn.004113a6
or eax, 0xffffffff
mov dword [ebp - 0x14], 0xfffffffc
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0xc], eax
jmp 0x4130ef
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0xb8], edi
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x4130e2
cmp dword [ebp - 0x14], eax
je 0x413117
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], al
je 0x4131b8
push eax
push 0xd22
push eax
call dword [sym.imp.OLEAUT32.dll_SafeArrayLock]
jmp 0x4131b8
mov dword [ebp - 0x18], 0xb441791e
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x14], eax
je 0x41314e
mov ecx, dword [ebp - 0x14]
add ecx, 0x8068
imul ecx, dword [ebp - 0x14]
sub ecx, 0x478c9dff
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x10], edi
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
xor ebx, ebx
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
imul edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
setl bl
xor ecx, ecx
or edx, 0xffffffff
cmp ebx, edx
setne cl
xor edx, edx
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x20], ecx
setle dl
xor ecx, ecx
test edx, edx
setns cl
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x1a
jle 0x4131b5
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x4131b0
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
xor eax, eax
inc dword [ebp - 0x14]
jmp 0x413199
push 3
pop ebx
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], eax
jl 0x4131de
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x4131d9
call esi
push eax
call esi
push eax
call dword [sym.imp.USER32.dll_SetParent]
xor eax, eax
dec dword [ebp - 0x14]
jns 0x4131c2
push dword [ebp - 0xb8]
movdqa xmm0, xmmword [0xa5c830]
lea ecx, [ebp - 0x5a0]
push ecx
lea ecx, [ebp - 0x5b0]
mov dword [ebp - 0x24], 0xfffffff7
push ecx
push eax
lea ecx, [ebp - 0x1f4]
mov dword [ebp - 0x1f4], eax
movdqu xmmword [ebp - 0x5b0], xmm0
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x1ec], eax
call fcn.004114da
mov dword [ebp - 0x24], ebx
lea ecx, [ebp - 0x3f4]
push 4
call fcn.004113a6
push dword [ebp - 0xb8]
movdqa xmm0, xmmword [0xa5c820]
lea ecx, [ebp - 0x5d0]
push ecx
xor eax, eax
mov dword [ebp - 0x24], 0x3fe5e81a
lea ecx, [ebp - 0x5e0]
mov dword [ebp - 0x24], ebx
push ecx
push eax
lea ecx, [ebp - 0x23c]
mov dword [ebp - 0x23c], eax
movdqu xmmword [ebp - 0x5e0], xmm0
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x234], eax
call fcn.004114da
mov dword [ebp - 0x24], 0xa9a1
lea ecx, [ebp - 0x444]
push edi
call fcn.004113a6
push 2
lea ecx, [ebp - 0x558]
call fcn.004113a6
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x14], eax
jmp 0x4132c2
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x3f4]
mov dword [ecx + edx*4], 0x252604
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x4132af
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x4132e5
or edx, 0xffffffff
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x478], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4132d3
mov dword [ebp - 0x14], eax
jmp 0x4132fd
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x444]
mov dword [ecx + edx*4], 0xfffffff8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4132ea
mov dword [ebp - 0x14], eax
jmp 0x41331a
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x558]
mov dword [eax + ecx*4], 0x1837def5
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x413307
dec dword [ebp - 0x30]
lea ecx, [ebp - 0x558]
call fcn.00411478
lea ecx, [ebp - 0x444]
call fcn.00411478
lea ecx, [ebp - 0x23c]
call fcn.00411478
lea ecx, [ebp - 0x3f4]
call fcn.00411478
lea ecx, [ebp - 0x1f4]
call fcn.00411478
push 2
lea ecx, [ebp - 0x540]
call fcn.004113a6
lea ecx, [ebp - 0x620]
mov dword [ebp - 0x18], 0x9fe387fb
push ecx
lea eax, [ebp - 0x610]
xorps xmm0, xmm0
push eax
push ecx
lea ecx, [ebp - 0x454]
movdqu xmmword [ebp - 0x620], xmm0
call fcn.00411452
xor eax, eax
mov dword [ebp - 0x20], 0xb3e713e1
cmp dword [ebp - 0x18], eax
je 0x413407
mov dword [ebp - 0xc], 0xe21afa9b
xor ecx, ecx
mov dword [ebp - 0x30], 0x5b3847d2
mov dword [ebp - 0x38], edi
mov eax, dword [ebp - 0xc]
cmp ecx, eax
sbb edx, edx
neg edx
sub edx, dword [ebp - 0xc]
neg edx
sbb edx, edx
inc edx
sub edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xc]
neg eax
sbb eax, eax
inc eax
imul edx, eax
mov eax, dword [ebp - 0x454]
cmp edx, dword [eax + 0xc]
mov eax, 0x9ed080c1
setge cl
cmp eax, ecx
mov eax, dword [ebp - 0xc]
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setne cl
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
sub eax, 0x150790db
mov dword [ebp - 0x38], eax
jmp 0x41346c
mov dword [ebp - 0x18], eax
jmp 0x413451
cmp byte [ebp - 0x19], 0
je 0x41341f
push edi
push eax
call esi
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
xor eax, eax
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x41344e
push 0xd65
push 0xa4e
push 0x5e5
push 0x2253
call esi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_ExcludeClipRect]
xor eax, eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
mov byte [ebp - 0x19], al
jle 0x41340c
cmp byte [ebp - 0x19], 0
je 0x41346c
push 0x23ff
push eax
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
lea ecx, [ebp - 0x454]
call fcn.00411478
mov dword [ebp - 0x24], 0x1928c176
mov byte [ebp - 0x19], 0
cmp byte [ebp - 0x19], 0
je 0x4134a1
push 0
push 0x1c84
push 0
call esi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPointA]
mov byte [ebp - 0x19], 0
cmp byte [ebp - 0x19], 0
je 0x4134b4
call esi
push eax
call dword [sym.imp.USER32.dll_IsZoomed]
mov dword [ebp - 8], 0
jmp 0x4134d0
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x1c4]
mov dword [eax + ecx*4], 0x53b26bdd
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x4134bd
push 2
lea ecx, [ebp - 0x224]
call fcn.004113a6
or eax, 0xffffffff
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0xc], eax
jmp 0x413505
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x224]
mov dword [ecx + edx*4], 0x5e17ca00
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x4134f2
mov edx, dword [ebp - 0x224]
cmp dword [edx + 4], eax
je 0x413559
mov dword [ebp - 0x30], 0xffff
cmp dword [ebp - 0x30], eax
je 0x413529
mov esi, edi
cmp dword [edx + 4], eax
jne 0x41352b
mov esi, eax
mov ecx, dword [ebp - 0x224]
mov edi, dword [ecx]
mov ecx, dword [ebp - 0x18]
add ecx, esi
add ecx, edi
jne 0x413545
cmp dword [edx + 4], eax
jne 0x413545
mov ecx, eax
jmp 0x41354d
xor ebx, ebx
push 3
lea ecx, [ebx + 1]
pop ebx
cmp edi, ecx
jne 0x41355d
xor edi, edi
inc edi
cmp dword [edx + 4], eax
jne 0x413560
mov ecx, eax
jmp 0x413562
xor edi, edi
inc edi
mov ecx, edi
mov dword [ebp - 0x18], ecx
or esi, 0xffffffff
mov dword [ebp - 0x18], 0xfffffff5
jmp 0x413589
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x413586
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_EnumCalendarInfoW]
xor eax, eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jg 0x413571
lea ecx, [ebp - 0x224]
call fcn.00411478
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x4135b3
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x540]
mov dword [ecx + edx*4], 0x5a60d005
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x4135a0
mov ecx, dword [ebp - 0x1c4]
mov dword [ecx], eax
jmp 0x4135cc
mov dword [ebp - 0x38], 0xb90d
mov dword [ebp - 0x30], 0x2cb13638
mov dword [ebp - 0x20], 0xaed23b61
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], eax
jmp 0x413600
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x674], 8
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jl 0x4135ef
dec dword [ebp - 0x10]
cmp dword [ebp - 0x34], eax
je 0x41364c
mov edx, dword [ebp - 0x10]
xor ebx, ebx
mov ecx, dword [ebp - 0x20]
cmp ecx, edx
setge bl
mov dword [ebp - 0x670], ebx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
neg ecx
sbb ecx, ecx
xor ebx, ebx
inc ecx
test ecx, ecx
mov ecx, dword [ebp - 0x38]
setg bl
xor edx, edx
cmp ecx, ebx
mov ecx, edi
setne dl
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x30], eax
jne 0x41364e
mov ecx, eax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x24], eax
push 3
mov dword [ebp - 0xc], 0xfffffffa
mov dword [ebp - 0xc], eax
pop esi
jmp 0x413670
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x6c], eax
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x413666
mov dword [ebp - 0x64], 0xfffffff3
jmp 0x4136d4
mov dword [ebp - 0x10], 0x37d45db3
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], edi
jge 0x4136a2
or edx, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x488], edx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x413690
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], eax
jl 0x4136d1
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x4136cc
push 0x928
push 0xeea
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_CheckDlgButton]
xor eax, eax
dec dword [ebp - 0x10]
jns 0x4136aa
inc dword [ebp - 0x64]
cmp dword [ebp - 0x64], 0xfffffff9
jle 0x41367e
mov ecx, dword [ebp - 0x64]
xor edx, edx
cmp ecx, 0x3ccd
mov ecx, dword [ebp - 0x64]
setl dl
xor ebx, ebx
cmp edx, 0x66e9
setg bl
xor edx, edx
cmp ebx, ecx
mov ecx, dword [ebp - 0x64]
setg dl
sub edx, ecx
mov dword [ebp - 0xc], edx
xor edx, edx
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x6c]
test ecx, ecx
setle dl
xor ecx, ecx
cmp edx, esi
setle cl
cmp ecx, dword [ebp - 0x64]
je 0x413727
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x64], ecx
mov ecx, 0xa5d6c05b
mov dword [ebp - 0x24], 0xee28fdeb
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0x100], ecx
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0xf8], ecx
mov dword [ebp - 0x2c], 0x8da8e97e
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x2c], esi
cmp dword [ebp - 0x2c], eax
jl 0x4137c4
push 9
pop ecx
mov dword [ebp - 0x20], ecx
xor ebx, ebx
mov dword [ebp - 0x38], 0xc3203bd6
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ebp + ecx*4 - 0x104]
test ecx, ecx
setne bl
cmp dword [ebp - 0x18], eax
jne 0x4137ad
mov edx, dword [ebp - 0x20]
mov esi, eax
mov ecx, dword [ebp - 0xf8]
add edx, ecx
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ebp + ecx*4 - 0x104]
imul ecx, edx
test ecx, ecx
je 0x4137af
mov esi, edi
mov ecx, dword [ebp - 0x2c]
xor edx, edx
cmp esi, ecx
setne dl
imul edx, ebx
mov dword [ebp - 0x38], edx
dec dword [ebp - 0x2c]
jns 0x41376c
mov dword [ebp - 0x18], eax
jmp 0x41381d
mov dword [ebp - 0x28], 0xfffffffd
mov dword [ebp - 0x20], 0x674fa72d
cmp dword [ebp - 0x28], eax
jne 0x41380b
cmp dword [ebp - 0x18], eax
je 0x4137ec
cmp dword [ebp - 0x28], eax
je 0x4137ec
mov ecx, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x28]
neg ecx
je 0x413807
cmp dword [ebp - 0x28], eax
jne 0x41380b
mov esi, eax
jmp 0x41380d
mov esi, edi
mov ecx, dword [ebp - 0x28]
xor edx, edx
cmp ecx, esi
setle dl
mov dword [ebp - 0x20], edx
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xfffffffa
jne 0x4137c9
push edi
lea ecx, [ebp - 0x484]
call fcn.004113a6
mov dword [ebp - 0x1a0], edi
lea ecx, [ebp - 0x320]
push 2
mov dword [ebp - 0x19c], edi
pop ebx
mov dword [ebp - 0x198], edi
mov dword [ebp - 0x194], edi
mov dword [ebp - 0x2c], 0x5052061f
push ebx
call fcn.004113a6
xor eax, eax
mov dword [ebp - 0xc], eax
jmp 0x413877
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x320]
mov dword [ecx + edx*4], 0x5fc1
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jl 0x413864
push 3
pop esi
mov dword [ebp - 0x2c], esi
cmp dword [ebp - 0x2c], eax
jl 0x413954
mov dword [ebp - 8], ebx
cmp dword [ebp - 8], eax
jne 0x4138ee
mov ecx, dword [ebp - 0x2c]
xor edx, edx
mov dword [ebp + ecx*4 - 0x1a0], edi
mov ecx, dword [ebp - 0x2c]
inc ecx
cmp ecx, 0x8551b32e
setne dl
xor ecx, ecx
cmp edx, 0x95ad
setge cl
add ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x2c]
jge 0x4138c2
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x1a0]
mov ecx, dword [ebp - 8]
sub edx, 6
neg edx
sbb edx, edx
inc edx
imul ecx, edx
test ecx, ecx
jne 0x4138dd
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 0x320]
cmp dword [ecx + 4], eax
je 0x4138ee
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 0x2c]
cmp dword [ebp + ecx*4 - 0x1a0], eax
je 0x413913
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x413948
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_BeginPaint]
jmp 0x413948
push 9
pop ecx
mov dword [ebp - 8], ecx
or ecx, 0xffffffff
jmp 0x413943
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x413940
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateHalftonePalette]
xor eax, eax
or ecx, 0xffffffff
dec dword [ebp - 8]
cmp dword [ebp - 8], ecx
jge 0x41391e
dec dword [ebp - 0x2c]
push 0
pop eax
jns 0x41388b
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x41396a
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
lea ecx, [ebp - 0x320]
call fcn.00411478
mov dword [ebp - 0x24], 5
lea ecx, [ebp - 0x338]
push ebx
call fcn.004113a6
mov dword [ebp - 0x24], 5
or edx, 0xffffffff
mov dword [ebp - 0x24], edx
mov dword [ebp - 0xc], 0
jmp 0x4139ad
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x338]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jl 0x41399e
mov eax, dword [ebp - 0x338]
lea ecx, [ebp - 0x338]
and dword [eax + 4], 0
call fcn.00411478
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x14], 0xddc85f70
mov dword [ebp - 0x14], eax
jmp 0x4139ef
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x4139ec
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x13
jl 0x4139db
push 9
pop ecx
mov dword [ebp - 0x14], ecx
jmp 0x413a78
mov dword [ebp - 8], 0x214a9bac
mov dword [ebp - 0xc], eax
jmp 0x413a1a
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x600], 0xfffffff6
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x413a09
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, 0xfffffffd
jg 0x413a39
cmp dword [ebp - 0x14], eax
jne 0x413a3c
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x5f4], 0x6d05
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 8], eax
jmp 0x413a56
cmp dword [ebp - 0x14], eax
jne 0x413a5c
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xfffffffc
jg 0x413a4e
mov dword [ebp - 8], eax
jmp 0x413a70
mov ecx, dword [ebp - 8]
cmp dword [ebp + ecx*4 - 0x600], eax
jne 0x413a75
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jle 0x413a61
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1b
jl 0x4139fd
mov dword [ebp - 0xc], eax
jmp 0x413a98
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x290], 0x40d7f825
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x413a87
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x413ab1
push eax
push eax
call dword [sym.imp.USER32.dll_GetMonitorInfoW]
xor eax, eax
mov dword [ebp - 0x288], 0x1c
jmp 0x413aed
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x413ae7
push eax
push 0x1651
push 0xc2b
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetDIBColorTable]
xor eax, eax
dec dword [ebp - 0x288]
cmp dword [ebp - 0x288], 0xfffffff1
jle 0x413abd
mov dword [ebp - 0xc], eax
jmp 0x413b0a
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x484]
mov dword [ecx + edx*4], eax
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x413afb
cmp dword [ebp - 0x30], eax
je 0x414002
mov dword [ebp - 0x30], 0xbd10caad
lea ecx, [ebp - 0x570]
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x30], 0xa4087b33
mov dword [ebp - 0x30], 0x80563ade
mov dword [ebp - 0x20], 0x72c2e8b5
push ebx
call fcn.004113a6
or esi, 0xffffffff
xor eax, eax
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x34], 0xae3c
mov dword [ebp - 8], eax
jmp 0x413b64
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x44], eax
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x413b5a
mov dword [ebp - 8], eax
jmp 0x413b81
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x570]
mov dword [ecx + edx*4], 8
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jl 0x413b6e
mov ecx, dword [ebp - 0x44]
xor edx, edx
cmp ecx, 0x635290ce
setge dl
cmp edx, dword [ebp - 0x44]
jle 0x413ba0
mov ecx, eax
cmp dword [ebp - 0x44], eax
je 0x413ba2
mov ecx, edi
imul edx, ecx, 0xea
xor ebx, ebx
mov ecx, dword [ebp - 0x44]
cmp edx, ecx
setl bl
mov dword [ebp - 0x30], ebx
cmp dword [ebp - 0x30], 0x5206
jg 0x413bc1
mov ecx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x44]
cmp esi, ecx
sbb ecx, ecx
xor ebx, ebx
inc ecx
test ecx, ecx
mov ecx, dword [ebp - 0x44]
setg bl
xor edx, edx
cmp ebx, ecx
setle dl
xor ecx, ecx
cmp edx, esi
setne cl
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x30], 0xbd6cd538
je 0x413c06
mov dword [ebp - 0xc], 0xbeaa32b1
or edx, 0xffffffff
mov dword [ebp - 0x20], edx
mov dword [ebp - 0xc], eax
jmp 0x414025
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x49c], 0xfffffff8
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jl 0x414014
mov dword [ebp - 0xc], edx
mov dword [ebp - 0xc], edi
cmp dword [ebp - 0xc], eax
jl 0x414063
mov dword [ebp - 0x18], 5
mov dword [ebp - 0x18], eax
jmp 0x414052
mov ecx, dword [ebp - 0x18]
mov dword [ebp + ecx*4 - 0x49c], 0x63384304
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x414041
mov dword [ebp - 0x20], 0xb9dd952e
dec dword [ebp - 0xc]
jns 0x414035
mov dword [ebp - 0x24], edx
lea ecx, [ebp - 0x350]
mov dword [ebp - 0x28], edi
push esi
call fcn.004113a6
mov dword [ebp - 0x24], 0xfffffffc
xor eax, eax
mov dword [ebp - 0x30], 8
mov dword [ebp - 8], eax
jmp 0x414098
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x5c], 0x4e2db58
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x41408a
mov dword [ebp - 8], eax
jmp 0x4140b5
cmp dword [ebp - 8], esi
jl 0x4140a2