Function at 0x41ecd2
Capabilities:
Clear file content
Resolve function by parsing pe exports
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x224
push ebx
push esi
push edi
push 8
pop esi
mov dword [esp + 0x10], esi
lea ecx, [esp + 0x13c]
mov dword [esp + 0x14], 0xfffffffe
mov dword [esp + 0x28], 0xffffffff
push 2
call fcn.0040809e
push 4
pop ebx
mov dword [esp + 0x20], ebx
lea ecx, [esp + 0x100]
mov dword [esp + 0x18], 0xf113d064
mov dword [esp + 0x24], 0x1f13110e
push ebx
call fcn.0040809e
xor eax, eax
mov dword [esp + 0xc], eax
jmp 0x41ed48
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x13c]
mov dword [ecx + edx*4], 7
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x41ed32
mov dword [esp + 0xc], eax
jmp 0x41ed67
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x100]
mov dword [ecx + edx*4], esi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jl 0x41ed55
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
push 1
pop edi
cmp ecx, dword [esp + 0x10]
jl 0x41ed8e
mov edx, eax
cmp dword [esp + 0x10], eax
je 0x41ed90
mov edx, edi
mov ecx, dword [esp + 0x10]
xor ebx, ebx
cmp ecx, edx
mov ecx, dword [esp + 0x10]
setl bl
xor edx, edx
cmp ecx, ebx
setl dl
add edx, dword [esp + 0x10]
je 0x41ee46
mov dword [esp + 0xc], 0x2b82
mov dword [esp + 0x24], 0xbe734e2e
cmp dword [esp + 0xc], eax
jne 0x41edf5
mov ecx, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, edi
setle dl
imul ecx, edx, 0x99a
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x14], ecx
jl 0x41edf9
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x24], ecx
cmp dword [esp + 0xc], eax
je 0x41ee38
cmp dword [esp + 0x24], eax
je 0x41ee38
mov byte [esp + 0x1f], al
cmp byte [esp + 0x1f], al
je 0x41ee58
push eax
push 0xaf0
push 0x242b
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetViewportExtEx]
jmp 0x41ee56
mov dword [esp + 0x24], 0x2cbd4dae
inc dword [esp + 0x24]
jmp 0x41ee58
mov byte [esp + 0x1f], al
cmp byte [esp + 0x1f], al
je 0x41ee58
call dword [sym.imp.GDI32.dll_GdiFlush]
xor eax, eax
mov dword [esp + 0x14], edi
cmp dword [esp + 0x14], eax
jl 0x41ef60
mov edi, dword [esp + 0x13c]
mov ebx, dword [esp + 0x100]
mov dword [esp + 0x10], 0x335a02a9
mov dword [esp + 0x24], 0x4b5bc683
mov dword [esp + 0x24], 0xc84d
mov dword [esp + 0xc], eax
jmp 0x41eea5
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x1c4], 0xfffffffa
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x41ee92
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x14], 0xcd142575
sbb ecx, ecx
neg ecx
sub ecx, 0x381c4edd
neg ecx
sbb ecx, ecx
inc ecx
cmp dword [esp + 0x10], ecx
jne 0x41eed1
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
xor edx, edx
cmp dword [edi + 4], ecx
mov esi, dword [esp + 0x10]
setge dl
imul esi, edx
sub esi, dword [esp + 0x10]
imul esi, dword [esp + 0x10]
sub esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, ecx
setne dl
mov dword [esp + 0x24], edx
xor edx, edx
mov ecx, dword [esp + 0x24]
test ecx, ecx
sets dl
mov dword [esp + 0x1c4], edx
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c4]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
sub ecx, dword [esp + 0x18]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
sub ecx, dword [esp + 0x28]
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [esp + 0x14]
mov dword [ebx + 4], ecx
dec dword [esp + 0x14]
jns 0x41ee74
xor edi, edi
inc edi
lea ecx, [esp + 0x100]
call fcn.00408170
lea ecx, [esp + 0x13c]
call fcn.00408170
mov dword [esp + 0x10], 0x20fe6e32
lea ecx, [esp + 0x1a4]
mov dword [esp + 0x14], 0xfffffffe
push 2
call fcn.0040809e
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x41efb4
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1a4]
mov dword [ecx + edx*4], 0x23024a13
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x41ef9e
cmp dword [esp + 0x10], eax
jne 0x41f00e
mov ecx, dword [esp + 0x10]
xor edx, edx
cmp ecx, 0x4a61bf07
mov esi, eax
setne dl
xor ecx, ecx
cmp edx, edi
setge cl
sub ecx, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
xor ebx, ebx
inc ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
cmp ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
setl bl
xor edx, edx
cmp ebx, ecx
setne dl
cmp edx, 9
sbb ecx, ecx
inc ecx
sub ecx, dword [esp + 0x10]
cmp ecx, dword [esp + 0x10]
jne 0x41f010
mov esi, edi
mov ecx, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [esp + 0x10]
cmp esi, ecx
setl dl
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x10], eax
je 0x41f09c
push 4
lea ecx, [esp + 0x18c]
call fcn.0040809e
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x41f061
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x188]
mov dword [ecx + edx*4], 0xfffffff7
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x41f04b
push 3
mov dword [esp + 0x18], eax
pop ebx
jmp 0x41f07f
mov byte [esp + 0x1f], al
cmp byte [esp + 0x1f], al
jne 0x41f091
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jle 0x41f071
lea ecx, [esp + 0x188]
jmp 0x41f1f4
push 0x1a5f
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 2
pop esi
mov dword [esp + 0x18], esi
lea ecx, [esp + 0x198]
mov dword [esp + 0xc], 0x3019c36c
mov dword [esp + 0x20], edi
push esi
call fcn.0040809e
mov dword [esp + 0x20], 0xb085ca7d
lea ecx, [esp + 0x164]
push edi
call fcn.0040809e
xor eax, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0xc], eax
jmp 0x41f0f3
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x198]
mov dword [ecx + edx*4], 0xfffffffb
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x41f0dd
mov dword [esp + 0xc], eax
jmp 0x41f112
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x164]
or dword [ecx + edx*4], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x41f0ff
mov dword [esp + 0xc], eax
jmp 0x41f131
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0xd8], 0x534d
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x41f11e
mov ecx, dword [esp + 0x18]
cmp ecx, dword [esp + 0x10]
jne 0x41f157
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x14], 0xffffffff
sbb ecx, ecx
inc ecx
cmp ecx, 0xfb65
mov ecx, eax
jl 0x41f159
mov ecx, edi
mov edx, dword [esp + 0x18]
xor ebx, ebx
imul edx, ecx
mov ecx, dword [esp + 0x14]
push 3
cmp edx, ecx
mov ecx, dword [esp + 0x14]
setne bl
xor edx, edx
cmp ebx, ecx
mov ecx, dword [esp + 0x1c]
pop ebx
setg dl
mov dword [esp + 0x20], edx
xor edx, edx
cmp ecx, dword [esp + 0x20]
setne dl
mov dword [esp + 0xc], edx
mov dword [esp + 0xc], 0x1c
cmp dword [esp + 0xc], 0x19
jl 0x41f1e1
push 4
pop edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x20], 0x1d4b4ea6
mov dword [esp + 0x20], 9
mov dword [esp + 0x14], eax
jmp 0x41f1c9
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x224], edx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jl 0x41f1ba
inc dword [esp + 0xd8]
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0x19
jge 0x41f1a0
lea ecx, [esp + 0x164]
call fcn.00408170
lea ecx, [esp + 0x198]
call fcn.00408170
lea ecx, [esp + 0x1a4]
call fcn.00408170
mov dword [esp + 0x14], edi
lea ecx, [esp + 0x1e0]
mov dword [esp + 0x24], 0xfffffff7
mov dword [esp + 0x18], 0xffff
push edi
call fcn.0040809e
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], 0
jmp 0x41f244
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x44], 5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x41f234
mov dword [esp + 0x10], 0
jmp 0x41f26a
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1e0]
mov dword [eax + ecx*4], 0x531f
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x41f254
mov eax, dword [esp + 0x44]
mov edx, 0xd208
mov dword [esp + 0x44], eax
mov dword [esp + 0x44], edx
dec dword [esp + 0x18]
mov eax, dword [esp + 0x24]
cmp edi, eax
mov eax, dword [esp + 0x18]
sbb esi, esi
xor ecx, ecx
neg esi
cmp eax, edx
mov eax, dword [esp + 0x14]
setge cl
xor edx, edx
cmp ecx, esi
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, 0x9e22401d
setg cl
cmp eax, ecx
lea ecx, [esp + 0x1e0]
sbb eax, eax
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
call fcn.00408170
mov dword [esp + 0x20], 0xb903cfcb
lea ecx, [esp + 0x58]
push ebx
call fcn.0040809e
push 2
pop esi
mov dword [esp + 0xc], ebx
lea ecx, [esp + 0x8c]
mov dword [esp + 0x24], edi
mov dword [esp + 0x14], 0xf361
push esi
call fcn.0040809e
xor eax, eax
mov dword [esp + 0x18], 0x5631cd1a
mov dword [esp + 0x10], eax
jmp 0x41f31f
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x58]
mov dword [ecx + edx*4], edi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x41f310
mov dword [esp + 0x10], eax
jmp 0x41f341
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + edx*4], 0xac06e326
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x41f32b
mov dword [esp + 0xc], esi
cmp dword [esp + 0xc], eax
jl 0x41f3a9
mov dword [esp + 0x20], 0x815
mov dword [esp + 0x20], 0x6d0811fc
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x58]
cmp dword [edx + ecx*4], eax
je 0x41f37b
cmp dword [edx + 4], eax
je 0x41f377
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
xor edx, edx
inc ecx
cmp ecx, edi
mov ecx, dword [esp + 0x14]
setge dl
xor ebx, ebx
imul edx, edx, 0xffff
cmp edx, ecx
setg bl
neg ebx
neg ebx
sbb ebx, ebx
inc ebx
mov dword [esp + 0x20], ebx
dec dword [esp + 0xc]
jns 0x41f351
mov dword [esp + 0xc], esi
cmp dword [esp + 0xc], eax
jl 0x41f5ae
mov edi, dword [esp + 0x8c]
push 1
lea ecx, [esp + 0x68]
call fcn.0040809e
mov dword [esp + 0x20], 0x932384b6
xor eax, eax
mov dword [esp + 0x28], 0xaeb8
mov dword [esp + 0x10], eax
jmp 0x41f3f4
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x64]
mov dword [ecx + edx*4], 0x221494fb
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x41f3e1
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x58]
cmp dword [ecx + edx*4], eax
je 0x41f481
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x58]
cmp dword [ecx + edx*4], eax
jne 0x41f42c
mov ecx, dword [esp + 0x8c]
cmp dword [ecx], eax
jne 0x41f42c
mov edx, eax
jmp 0x41f42f
xor edx, edx
inc edx
mov esi, dword [esp + 0xc]
xor ebx, ebx
mov ecx, dword [esp + 0x24]
cmp edx, ecx
mov ecx, dword [esp + 0x18]
setle bl
sub ebx, 0xcc33
neg ebx
sbb ebx, ebx
xor edx, edx
inc ebx
cmp ebx, 0xfffffffc
setle dl
xor ebx, ebx
cmp edx, ecx
mov ecx, dword [esp + 0x58]
setg bl
mov ecx, dword [ecx + esi*4]
sub ecx, ebx
jne 0x41f471
cmp dword [esp + 0x18], eax
jne 0x41f471
mov edx, eax
jmp 0x41f474
xor edx, edx
inc edx
mov ecx, dword [esp + 0x14]
sub ecx, edx
je 0x41f481
xor edx, edx
inc edx
jmp 0x41f483
mov edx, eax
mov ecx, dword [esp + 0x64]
mov dword [ecx], edx
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x58]
cmp dword [ecx + edx*4], eax
jne 0x41f4bc
inc dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], eax
jne 0x41f4bc
mov edx, eax
jmp 0x41f4bf
xor edx, edx
inc edx
mov ecx, dword [esp + 0x64]
mov esi, dword [ecx]
mov ecx, dword [esp + 0xc]
dec ecx
add ecx, edx
neg ecx
sbb ecx, ecx
neg ecx
sub ecx, dword [esp + 0xc]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, 0x915
setg dl
xor ecx, ecx
add edx, esi
imul edx, dword [edi + 4]
sub edx, esi
cmp edx, 0x551b
setne cl
xor edx, edx
cmp ecx, 0xffff606c
mov ecx, dword [esp + 0x8c]
setne dl
mov dword [ecx], edx
cmp dword [esp + 0x20], eax
jge 0x41f57f
mov dword [esp + 0x28], 0x9310
mov byte [esp + 0x1f], al
cmp byte [esp + 0x1f], al
je 0x41f52e
push eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
xor eax, eax
push 2
pop esi
mov dword [esp + 0x14], esi
cmp dword [esp + 0x14], eax
jl 0x41f58a
mov dword [esp + 0x20], 0x84183aa7
mov dword [esp + 0x10], eax
jmp 0x41f55c
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x98], 0xfffffffd
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x41f549
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x28]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x98], ecx
dec dword [esp + 0x14]
jns 0x41f53b
jmp 0x41f58a
mov ecx, dword [esp + 0x64]
cmp dword [ecx], eax
jne 0x41f59f
push 2
pop esi
lea ecx, [esp + 0x64]
call fcn.00408170
dec dword [esp + 0xc]
jns 0x41f3be
jmp 0x41f5ab
lea ecx, [esp + 0x64]
call fcn.00408170
push 2
pop esi
xor edi, edi
inc edi
lea ecx, [esp + 0x8c]
call fcn.00408170
lea ecx, [esp + 0x58]
call fcn.00408170
push dword [esp + 0x40]
movdqa xmm0, xmmword [0xa6be30]
lea ecx, [esp + 0x210]
push ecx
xor eax, eax
mov dword [esp + 0x2c], edi
lea ecx, [esp + 0x204]
mov dword [esp + 0xc8], eax
push ecx
push eax
lea ecx, [esp + 0xd0]
mov dword [esp + 0xd4], eax
movdqu xmmword [esp + 0x20c], xmm0
mov dword [esp + 0xd8], eax
call fcn.00408ca2
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x41f624
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x3c], edi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x41f618
push 3
pop ebx
mov dword [esp + 0x3c], ebx
cmp dword [esp + 0x3c], eax
jl 0x41f69a
mov dword [esp + 0x14], 0xfffffffd
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x14], eax
jl 0x41f694
mov dword [esp + 0x18], 0xab593421
mov dword [esp + 0x18], eax
jmp 0x41f688
mov byte [esp + 0x1f], al
cmp byte [esp + 0x1f], 0
je 0x41f66f
push 0xa4c
call dword [sym.imp.USER32.dll_BeginDeferWindowPos]
xor eax, eax
mov byte [esp + 0x1f], al
cmp byte [esp + 0x1f], 0
je 0x41f684
push eax
push eax
call dword [sym.imp.KERNEL32.dll_SetCommState]
xor eax, eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jle 0x41f657
dec dword [esp + 0x14]
jns 0x41f649
dec dword [esp + 0x3c]
jns 0x41f637
lea ecx, [esp + 0xc0]
call fcn.00408170
push esi
lea ecx, [esp + 0x134]
call fcn.0040809e
mov dword [esp + 0x14], 0xffffffff
xor eax, eax
mov dword [esp + 0x20], 0x25681085
mov dword [esp + 0x20], eax
mov dword [esp + 0xc], 0xe7c14ab6
mov dword [esp + 0x18], eax
jmp 0x41f6ea
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x1d0], 0x6b43d271
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x41f6d7
mov dword [esp + 0x14], eax
jmp 0x41f80b
mov dword [esp + 0x10], 0x97eede0b
mov dword [esp + 0x18], 0x7f191253
mov dword [esp + 0x18], eax
jmp 0x41f723
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x154], 0xcd49598a
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x41f710
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0x1a
jl 0x41f807
mov dword [esp + 0x28], 0x210ec320
lea ecx, [esp + 0x1b8]
push edi
call fcn.0040809e
mov dword [esp + 0x18], 0
jmp 0x41f76e
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1b8]
mov dword [eax + ecx*4], 0x3a6d7d04
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x41f758
cmp dword [esp + 0x20], 0
jne 0x41f7a1
mov dword [esp + 0x28], 0xc1e0
xor edx, edx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
cmp eax, ecx
setge dl
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x158]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0xc]
inc dword [esp + 0xc]
cmp eax, ecx
jne 0x41f7c0
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x1dc]
xor edx, edx
mov eax, dword [esp + 0x1dc]
mov ecx, dword [esp + 0x1dc]
mov eax, dword [esp + 0x158]
cmp eax, ecx
lea ecx, [esp + 0x1b8]
setl dl
mov dword [esp + 0x158], edx
call fcn.00408170
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x1a
jge 0x41f739
xor eax, eax
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffffe
jg 0x41f6fa
mov dword [esp + 0x20], edi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x14], 0x313dd33a
push esi
call fcn.0040809e
mov dword [esp + 0x20], 0x5c2f1fcc
lea ecx, [esp + 0xa8]
push edi
call fcn.0040809e
xor eax, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0xc], eax
jmp 0x41f85c
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x4c]
mov dword [ecx + edx*4], edi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x41f84d
mov dword [esp + 0xc], eax
jmp 0x41f87a
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0xa8]
mov dword [ecx + edx*4], edi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x41f868
mov dword [esp + 0xc], eax
jmp 0x41f892
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x40], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x41f886
mov dword [esp + 0x14], 0xfffffff0
cmp dword [esp + 0x14], 0x13
jl 0x41fa52
mov dword [esp + 0xc], eax
mov dword [esp + 0xc], edi
cmp dword [esp + 0xc], eax
jl 0x41fa40
mov edi, dword [esp + 0x4c]
push ebx
lea ecx, [esp + 0xa0]
call fcn.0040809e
xor eax, eax
mov dword [esp + 0x20], 0x32f8296
mov dword [esp + 0x10], eax
jmp 0x41f8f4
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x9c]
mov dword [ecx + edx*4], 0x8a94b2ab
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x41f8de
xor esi, esi
mov dword [esp + 0x10], eax
inc esi
jmp 0x41f913
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x38], 0xbd907c4e
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x41f903
mov edx, dword [esp + 0xc]
xor ebx, ebx
mov ecx, dword [esp + 0x4c]
cmp dword [ecx + edx*4], esi
mov ecx, dword [esp + 0xc]
setg bl
xor edx, edx
cmp ecx, ebx
setne dl
add edx, dword [esp + 0xc]
imul edx, dword [esp + 0xc]
cmp edx, dword [esp + 0x38]
jne 0x41f94d
mov ecx, dword [esp + 0x4c]
mov edx, esi
cmp dword [ecx], eax
jne 0x41f94f
mov edx, eax
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x9c]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
cmp edx, eax
mov eax, dword [esp + 0x4c]
setne cl
xor edx, edx
cmp ecx, dword [eax]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
setge dl
add ecx, edx
xor edx, edx
cmp ecx, eax
setge dl
imul edx, dword [esp + 0xc]
mov ecx, dword [esi + 8]
mov eax, dword [esp + 0xa8]
sub ecx, edx
mov dword [eax], ecx
xor eax, eax
cmp ecx, 8
setg al
xor ecx, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
cmp eax, 7
setg cl
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
neg ecx
mov eax, dword [esp + 0xc]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, 0x6fe0855b
setle dl
xor ecx, ecx
imul edx, eax
mov eax, dword [esp + 0xa8]
mov dword [eax], edx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
imul edx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0xc]
cmp edx, eax
mov eax, dword [esp + 0x9c]
sete cl
xor edx, edx
cmp ecx, dword [edi + 4]
lea ecx, [esp + 0x9c]
setl dl
mov dword [eax], edx
call fcn.00408170
dec dword [esp + 0xc]
push 3
pop ebx
jns 0x41f8c1
xor edi, edi
xor eax, eax
inc edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x13
jge 0x41f8ab
push 2
pop esi
lea ecx, [esp + 0xa8]
call fcn.00408170
lea ecx, [esp + 0x4c]
call fcn.00408170
mov dword [esp + 0x20], 0xf50e16ff
lea ecx, [esp + 0x118]
push ebx
call fcn.0040809e
mov dword [esp + 0x10], 0x5c68ec0a
xor eax, eax
mov dword [esp + 0xc], 0xa53061ec
mov dword [esp + 0x18], 0xfffffff8
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0xfffffff3
je 0x41fbea
jmp 0x41faa9
xor eax, eax
push dword [esp + 0x40]
movdqa xmm0, xmmword [0xa6be60]
lea ecx, [esp + 0x200]
push ecx
lea ecx, [esp + 0x1f4]
mov dword [esp + 0x1c], 0xcce57bf5
push ecx
push eax
lea ecx, [esp + 0xc4]
mov dword [esp + 0xc4], eax
movdqu xmmword [esp + 0x1fc], xmm0
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
call fcn.00408ca2
dec dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc], 0xb984
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
sub ecx, eax
cmp ecx, 0xddd9cd4
jl 0x41fb1e
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
dec eax
neg eax
sbb eax, eax
neg eax
imul eax, dword [esp + 0x10]
test eax, eax
je 0x41fb9c
mov dword [esp + 0x20], 0xfffffff9
mov dword [esp + 0x28], 5
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setl cl
cmp ecx, 0xc698dc50
sbb eax, eax
xor edx, edx
neg eax
cmp eax, 0xfffffff7
mov eax, dword [esp + 0x14]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x20]
setl cl
xor edx, edx
cmp ecx, 0x299e885d
setge dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x28], ecx
jmp 0x41fbcf
mov dword [esp + 0xc], ebx
cmp dword [esp + 0xc], 0
jl 0x41fbcf
mov byte [esp + 0x1f], 0
cmp byte [esp + 0x1f], 0
je 0x41fbc9
push 0
push 0
push 0x1d4f
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_DefWindowProcA]
dec dword [esp + 0xc]
jns 0x41fba7
lea ecx, [esp + 0xb4]
call fcn.00408170
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff3
jne 0x41faa7
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x170]
mov dword [esp + 0xc], eax
push esi
call fcn.0040809e
push 9
pop eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], 0
jmp 0x41fc3b
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x170]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x41fc29
mov dword [esp + 0x84], 0
jmp 0x41fc7c
mov byte [esp + 0x1f], 0
cmp byte [esp + 0x1f], 0
je 0x41fc75
push 0x59f
push 0
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_Polyline]
inc dword [esp + 0x84]
cmp dword [esp + 0x84], edi
jle 0x41fc4e
lea ecx, [esp + 0x170]
call fcn.00408170
mov dword [esp + 0xc], 0
jmp 0x41fcab
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x34], 0xd7d490c4
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x41fc9b
push esi
lea ecx, [esp + 0x128]
call fcn.0040809e
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0xc], eax
jmp 0x41fce0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x124]
mov dword [ecx + edx*4], 0x13dd33a4
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x41fcca
mov dword [esp + 0xc], eax
jmp 0x41fcff
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x20c], 0xf3690f1d
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x41fcec
mov dword [esp + 0xc], eax
jmp 0x41fd1a
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x194], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x41fd0b
mov ecx, dword [esp + 0x124]
mov dword [ecx + 4], eax
lea ecx, [esp + 0x124]
call fcn.00408170
xor eax, eax
mov dword [esp + 0xc], eax
jmp 0x41fd4a
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x70], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jl 0x41fd3e
mov dword [esp + 0x18], 0xfd47030f
mov dword [esp + 0x28], 6
mov dword [esp + 0x20], 0x39425a33
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x10], eax
jmp 0x41fd86
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x2c], 8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x41fd76
mov dword [esp + 0x10], eax
jmp 0x41fda2
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x48], 0xc1a1fd29
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x41fd92
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x2c]
sub ecx, 0x73744644
jne 0x41fdc8
mov edx, eax
cmp dword [esp + 0x2c], eax
je 0x41fdca
mov edx, edi
mov ecx, dword [esp + 0x30]
xor ebx, ebx
add edx, ecx
mov ecx, dword [esp + 0x2c]
cmp edx, ecx
setle bl
mov dword [esp + 0x28], ebx
mov ecx, dword [esp + 0x28]
imul ecx, dword [esp + 0x30]
dec ecx
cmp ecx, 0x2b99
jg 0x41fdf5
mov ecx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x20], ecx
cmp dword [esp + 0x20], eax
je 0x41fe23
mov esi, edi
cmp dword [esp + 0x18], eax
jne 0x41fe25
mov esi, eax
mov ecx, dword [esp + 0x2c]
xor edx, edx
cmp esi, ecx
mov ecx, dword [esp + 0x2c]
sete dl
imul ecx, edx
neg ecx
sbb ecx, ecx
add ecx, 0x6ea1325b
mov dword [esp + 0x48], ecx
je 0x41fe4f
mov esi, edi
cmp dword [esp + 0x48], eax
jne 0x41fe51
mov esi, eax
mov ecx, dword [esp + 0x2c]
xor edx, edx
cmp esi, ecx
mov ecx, dword [esp + 0x30]
setl dl
cmp edx, 0xefd52276
sbb edx, edx
inc edx
sub edx, ecx
mov ecx, dword [esp + 0x30]
neg edx
sbb edx, edx
neg edx
imul ecx, edx
cmp ecx, dword [esp + 0x2c]
jge 0x41fe82
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
sub ecx, 0xfffb
neg ecx
push 2
sbb ecx, ecx
inc ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], eax
pop esi
jmp 0x41feb4
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x130]
mov dword [eax + ecx*4], 0x6fc75dfc
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x41fe9e
mov dword [esp + 0x10], 0xfffffff8
lea ecx, [esp + 0xf4]
push esi
call fcn.0040809e
xor eax, eax
mov dword [esp + 0xc], eax
jmp 0x41feea
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x17c], 0x5a945cb8
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x41fed7
mov dword [esp + 0xc], eax
jmp 0x41ff06
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0xe0], esi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x41fef7
mov dword [esp + 0xc], eax
jmp 0x41ff28
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0xf4]
mov dword [ecx + edx*4], 0x4f6f4846
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x41ff12
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
push 4
pop edx
mov dword [esp + 0x180], edx
mov ecx, dword [esp + 0x10]
add ecx, edx
neg ecx
sbb ecx, ecx
xor ebx, ebx
neg ecx
cmp ecx, 0xbec5
setle bl
sub ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
neg ebx
sbb ebx, ebx
xor edx, edx
neg ebx
cmp ebx, ecx
setg dl
xor ecx, ecx
cmp edx, 0x52b4b5a9
setle cl
sub ecx, 0xfffffff8
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [esp + 0x10]
jne 0x41ff90
mov edx, edi
cmp dword [esp + 0x180], eax
jne 0x41ff92
mov edx, eax
mov ecx, dword [esp + 0x10]
xor ebx, ebx
cmp ecx, edx
mov ecx, dword [esp + 0x10]
setl bl
xor edx, edx
cmp ebx, ecx
setle dl
mov dword [esp + 0xe0], edx
mov dword [esp + 0x10], 0xffffffe3
cmp dword [esp + 0x10], 0xffffffff
jle 0x420076
mov esi, dword [esp + 0xf4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], 0xea47
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x18], eax
jmp 0x41fff6
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x214], 0x96dad8be
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x41ffe3
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x14]
imul ecx, ecx, 0x8e4c
sub edx, ecx
jne 0x42001a
mov ecx, eax
cmp dword [esp + 0x14], eax
je 0x42001c
mov ecx, edi
xor edx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
cmp dword [esi + 4], ecx
setl dl
mov dword [esp + 0x218], edx
mov ecx, dword [esp + 0x14]
add ecx, edx
mov edx, dword [esp + 0x14]
neg edx
sbb edx, edx
inc edx
sub edx, ecx
neg edx
sbb edx, edx
inc edx
sub edx, dword [esp + 0x10]
sub edx, 0x5bdddd5d
neg edx
sbb edx, edx
inc edx
mov dword [esp + 0x20], edx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffff
jg 0x41ffc9
push 2
pop esi
lea ecx, [esp + 0xf4]
call fcn.00408170
xor eax, eax
push 3
mov dword [esp + 0x10], eax
pop ebx
jmp 0x4200a3
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x118]
mov dword [ecx + edx*4], 0x3333
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jl 0x42008d
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x70]
mov ecx, dword [esp + 0x70]
mov ecx, dword [esp + 0x78]
mov ecx, dword [esp + 0x78]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x20], ebx
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x34], eax
jne 0x4200e3
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
xor edx, edx
mov ecx, dword [esp + 0x130]
cmp dword [ecx], eax
setge dl
imul edx, dword [ecx + 4]
mov dword [esp + 0x20], edx
xor edx, edx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
cmp ecx, eax
setle dl
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x118]
mov dword [eax + 4], ecx
lea ecx, [esp + 0x118]
call fcn.00408170
lea ecx, [esp + 0x130]
call fcn.00408170
mov dword [esp + 0x14], 0xffffffff
lea ecx, [esp + 0xe8]
push esi
call fcn.0040809e
mov dword [esp + 0x10], edi
mov dword [esp + 0x20], 4
mov dword [esp + 0x24], 7
mov dword [esp + 0x18], 0
jmp 0x42017f
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xe8]
mov dword [eax + ecx*4], 0xb0befcdf
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x420169
mov dword [esp + 0x14], 0
cmp dword [esp + 0x14], 0xfffffff5
je 0x42037c
mov edi, dword [esp + 0xe8]
push 4
lea ecx, [esp + 0xd0]
call fcn.0040809e
push esi
lea ecx, [esp + 0x110]
call fcn.0040809e
mov dword [esp + 0x20], 0xe936be85
lea ecx, [esp + 0x148]
mov dword [esp + 0x20], 0xb64d
push 1
call fcn.0040809e
xor eax, eax
mov dword [esp + 0xc], eax
jmp 0x4201f2
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0xcc]
mov dword [ecx + edx*4], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x4201e0
mov dword [esp + 0xc], eax
jmp 0x420215
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10c]
mov dword [ecx + edx*4], 0x2c41ac3d
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x4201ff
mov dword [esp + 0xc], eax
jmp 0x420237
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x148]
mov dword [ecx + edx*4], 0xdf7b1466
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jl 0x420221
mov dword [esp + 0xc], eax
jmp 0x420257
dec dword [esp + 0x24]
lea ecx, [esp + 0xe8]
call fcn.00408170
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret