Function at 0x6ed040
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x4e4
nop
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x6f0590
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.006efdc0
mov ecx, dword [0xa4a787]
mov dword [ebp - 0x24], eax
xor eax, 0x4516fd80
mov esi, dword [0xa4a7b7]
mov edx, dword [0xa18ee0]
mov ebx, dword [edx]
mov edi, dword [0x9a40e4]
mov dword [ebp - 0x38], edi
mov edi, dword [0xa18ee4]
add edi, dword [edi]
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x54], eax
test eax, ecx
je 0x6ed0d3
test esi, esi
je 0x6ed0d3
test cl, 1
jne 0x6ed0d3
nop
test byte [0xa56fe4], 1
jne 0x6ed0d3
nop
cmp byte [ebp + 0x10], 0
jne 0x6ed0d3
xor ebx, ebx
mov edi, 0x6ecac0
jmp 0x6ee331
test cl, 1
jne 0x6ed6c8
nop
mov dword [0xa4a7b3], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0xb8], xmm0
mov eax, dword [0xa4a79b]
mov dword [ebp - 0x68], eax
mov eax, dword [0xa18ecc]
lea ecx, [eax + 1]
mov dword [0xa18ecc], ecx
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], ecx
test ecx, eax
je 0x6ed719
nop
cmp dword [ebp - 0x68], 0
mov dword [ebp - 0x10], 0xffffffff
jns 0x6ed15d
nop
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0xb0], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0x24]
xor eax, 0x7ae9037f
and eax, dword [0xa4a79b]
lea ecx, [ebp - 0xb8]
push eax
call fcn.0073dcf0
nop
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edi, dword [ebp - 0x24]
xor edi, 0x4516fc1c
push edi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
test eax, eax
jne 0x6ed195
nop
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ecx, dword [ebp - 0x24]
xor ecx, 0x4516fc92
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
nop
mov dword [ebp - 0x20], edi
mov dword [esi], edi
push esi
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x6ed1ce
nop
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ecx, dword [ebp - 0x24]
xor ecx, 0x4516fc7f
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
nop
push dword [ebp + 0xc]
push 1
push 0
call fcn.008ea7b2
call fcn.00744810
cmp dword [0xa56ff0], 0
jne 0x6ed23a
nop
mov edi, dword [ebp - 0x24]
mov eax, edi
xor eax, 0x4516fc48
push eax
call fcn.008ea17d
add esp, 4
mov dword [eax], 0x920f64
mov dword [eax + 0x1c], 0
mov ecx, edi
xor ecx, 0x4516fc8f
mov dword [eax + 0x20], ecx
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0x920fc0
mov dword [eax + 0x24], 0
mov dword [eax + 0x28], 0
mov dword [eax + 4], 0
mov dword [0xa56ff0], eax
nop
mov ecx, dword [0xa56ff0]
mov edx, dword [ebp - 0x20]
test edx, edx
je 0x6ed32b
xor eax, eax
cmp edx, 8
jb 0x6ed2c8
mov edx, ecx
sub edx, esi
add edx, 0x2c
cmp edx, 0x20
mov ebx, dword [ebp - 0x20]
jb 0x6ed2c8
xor eax, eax
cmp ebx, 0x20
jb 0x6ed29b
mov eax, ebx
and eax, 0xffffffe0
xor edx, edx
nop
movups xmm0, xmmword [esi + edx]
movups xmm1, xmmword [esi + edx + 0x10]
movups xmmword [ecx + edx + 0x2c], xmm0
movups xmmword [ecx + edx + 0x3c], xmm1
add edx, 0x20
cmp eax, edx
jne 0x6ed270
mov ebx, dword [ebp - 0x20]
cmp ebx, eax
je 0x6ed32b
test bl, 0x18
je 0x6ed2c8
mov edx, eax
mov eax, ebx
and eax, 0xfffffff8
nop word cs:[eax + eax]
nop
movsd xmm0, qword [esi + edx]
movsd qword [ecx + edx + 0x2c], xmm0
add edx, 8
cmp eax, edx
jne 0x6ed2b0
cmp dword [ebp - 0x20], eax
je 0x6ed32b
mov edx, dword [ebp - 0x24]
mov edi, eax
and edx, 3
je 0x6ed2ed
mov edi, eax
nop word cs:[eax + eax]
nop
movzx ebx, byte [esi + edi]
mov byte [ecx + edi + 0x2c], bl
inc edi
dec edx
jne 0x6ed2e0
mov edx, dword [ebp - 0x20]
sub eax, edx
cmp eax, 0xfffffffc
ja 0x6ed32b
nop word [eax + eax]
nop
movzx eax, byte [esi + edi]
mov byte [ecx + edi + 0x2c], al
movzx eax, byte [esi + edi + 1]
mov byte [ecx + edi + 0x2d], al
movzx eax, byte [esi + edi + 2]
mov byte [ecx + edi + 0x2e], al
movzx eax, byte [esi + edi + 3]
mov byte [ecx + edi + 0x2f], al
add edi, 4
cmp edx, edi
jne 0x6ed300
nop
mov dword [ebp - 0x10], 0xffffffff
mov ebx, ecx
call fcn.006a8b50
mov ecx, ebx
call fcn.006a8b70
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [0xa580cc], 0
nop
mov dword [ebp - 0x44], ebx
jne 0x6ed38e
nop
mov eax, dword [ebp - 0x24]
xor eax, 0x4516f878
push eax
call fcn.008ea17d
add esp, 4
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x20], eax
mov ecx, eax
call fcn.00667be0
nop
mov eax, dword [ebp - 0x20]
mov dword [0xa580cc], eax
nop
mov ebx, dword [ebp - 0x44]
nop
mov esi, dword [0xa580cc]
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [esi + 0x1c0], eax
mov dword [ebp - 0x10], 0xffffffff
push 0
call eax
mov dword [ebx + 0x28], eax
mov edi, dword [ebp - 0x24]
mov eax, edi
xor eax, 0xfa80
cmp word [ebx + 6], ax
seta byte [esi + 0x2dd]
mov eax, edi
xor eax, 0xfa81
cmp word [ebx + 6], ax
mov dword [ebp - 0x3c], esi
seta byte [esi + 0x2de]
mov esi, 0xa4a787
sub esi, dword [0xa4a7a7]
lea eax, [ebp - 0x4f0]
push 0x400
push 0
push eax
call fcn.00901a10
add esp, 0xc
mov eax, edi
xor eax, 0x4516f880
mov dword [ebp - 0x28], eax
push eax
lea eax, [ebp - 0x4f0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov dword [ebx + 0x24], esi
lea ecx, [ebx + 8]
lea eax, [ebp - 0x4f0]
push eax
call fcn.007896e0
call fcn.006ec8a0
mov dword [ebp - 0x4c], 0
mov eax, dword [0xa568e7]
mov dword [ebp - 0x20], eax
xor edi, 0x4516fca4
mov dword [ebp - 0x10], 3
mov dword [ebp - 0x38], edi
push edi
call fcn.008ea17d
add esp, 4
mov ecx, eax
mov eax, dword [0xa568e3]
mov edx, dword [ebp - 0x20]
add eax, edx
add eax, 0xa4a787
mov dword [ebp - 0x10], 6
push eax
mov dword [ebp - 0x20], ecx
call fcn.00785310
nop
mov eax, dword [ebp - 0x60]
test dword [ebp - 0x64], eax
sete al
mov esi, dword [ebp - 0x4c]
mov ecx, dword [0x9a40f0]
cmp ecx, dword [ebp - 0x2c]
setne cl
and cl, al
or cl, byte [0xa56fe4]
and cl, 1
mov byte [0xa56fe4], cl
mov edi, dword [ebp - 0x20]
cmp esi, edi
sete al
test esi, esi
sete cl
xor cl, al
jne 0x6ed4bd
mov ecx, esi
call fcn.00659f10
push esi
call fcn.008ea1c0
add esp, 4
nop
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x10], 3
mov ecx, dword [ebp - 0x3c]
push edi
call fcn.006a1670
test al, al
jne 0x6ed4ee
nop
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
nop
mov ecx, dword [ebp - 0x24]
xor ecx, 0x4516fc7f
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
nop
mov eax, dword [ebp - 0x28]
test dword [0xa4a787], eax
je 0x6ed682
nop
mov eax, dword [ebp - 0x3c]
cmp dword [eax + 0x460], 0
je 0x6ed682
lea ecx, [ebp - 0xf0]
lea eax, [ebp - 0x4f0]
push eax
call fcn.00785840
nop
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x460]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 7
lea eax, [ebp - 0xd4]
lea ecx, [ebp - 0xf0]
push eax
call fcn.007870b0
nop
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor ecx, 0x4516fc84
mov dword [ebp - 0x40], ecx
lea esi, [ecx + ebp]
add esi, 0xffffff2c
mov ecx, eax
xor ecx, 0x4516fc98
xor eax, 0x4516fc8f
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x28], eax
cmp dword [ebp + ecx - 0xd4], eax
jbe 0x6ed588
mov eax, dword [ebp - 0x40]
mov esi, dword [ebp + eax - 0xd4]
mov dword [ebp - 0x10], 0xffffffff
mov ecx, dword [ebp - 0x2c]
call dword [0xa0535c]
mov dword [ebp - 0x10], 8
push esi
call ecx
nop
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax - 0xd4]
cmp eax, dword [ebp - 0x28]
jbe 0x6ed623
nop
mov edi, dword [ebp - 0x24]
mov ecx, edi
xor ecx, 0xd0389e78
mov edx, eax
sub edx, ecx
inc edx
mov esi, edx
xor esi, ecx
and edx, ecx
lea esi, [esi + edx*2]
mov ecx, edi
xor ecx, 0x4516f37f
cmp esi, ecx
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx]
jbe 0x6ed618
nop
mov edx, dword [ecx - 4]
cmp byte [0xa56fe4], 0
jne 0x6ed611
nop
mov ebx, dword [ebp - 0x24]
mov esi, ebx
xor esi, 0xbae9037c
mov edi, esi
xor edi, ecx
and esi, ecx
lea ecx, [edi + esi*2]
sub ecx, edx
mov esi, ebx
xor esi, 0x4516fca0
cmp ecx, esi
jae 0x6ee3bd
add eax, dword [ebp - 0x38]
mov esi, eax
mov ecx, edx
nop
push esi
push ecx
call fcn.008ea1ad
add esp, 8
nop
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax - 0xf0]
cmp eax, dword [ebp - 0x28]
jbe 0x6ed682
nop
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ebp + ecx - 0xf0]
lea esi, [eax + 1]
mov edi, dword [ebp - 0x24]
mov edx, edi
xor edx, 0x4516f37f
cmp esi, edx
jbe 0x6ed677
nop
mov edx, dword [ecx - 4]
mov esi, edi
xor esi, 0xbae9037c
add esi, ecx
sub esi, edx
mov ecx, edi
xor ecx, 0x4516fca0
cmp esi, ecx
jae 0x6ee3ca
add eax, dword [ebp - 0x38]
mov esi, eax
mov ecx, edx
nop
push esi
push ecx
call fcn.008ea1ad
add esp, 8
nop
mov dword [ebp - 0x10], 3
call fcn.0065e2c0
mov dword [ebp - 0x20], eax
nop
movzx eax, byte [ebp + 0x10]
xor al, 1
mov ecx, dword [ebp - 0x20]
mov byte [ecx + 0x4d8], al
push ecx
call fcn.006d3cb0
add esp, 4
nop
mov eax, dword [ebp - 0x24]
xor eax, 0x4596fc80
mov dword [ebp - 0x28], eax
test dword [0xa5689b], eax
je 0x6ed766
jmp 0x6ed788
xor ebx, ebx
test dword [ebp - 0x54], ecx
je 0x6ed75f
nop
mov eax, dword [0xa4a78b]
mov edx, eax
mov edi, dword [ebp - 0x24]
xor edx, edi
mov esi, edx
xor esi, 0xbae9036f
test esi, eax
je 0x6edcea
add eax, eax
mov dword [0xa4a78b], eax
xor edi, 0x4516fc85
or ecx, edi
mov dword [0xa4a787], ecx
mov dword [0xa4a7ab], 0x6ecac0
mov edi, 0x6ecac0
jmp 0x6ee331
nop
mov ecx, dword [0xa18ee8]
mov eax, dword [ebp - 0x24]
xor ecx, eax
cmp ecx, 0xee0b0bce
jne 0x6edd0e
mov ecx, eax
xor ecx, 0x516fc88
mov eax, dword [ebp - 0x58]
lea esi, [eax + ecx*4]
add esi, dword [eax + ecx*4]
mov dword [ebp - 0x3c], esi
mov dword [0xa18f80], 0xea472662
nop
cmp dword [ebp - 0x38], 0
jg 0x6edd24
jmp 0x6ed11c
xor edi, edi
jmp 0x6ee331
mov ecx, 0xf8
add ecx, dword [0xa56da8]
mov dword [ebp - 0x2c], ecx
call fcn.006a3200
int3
nop
mov eax, dword [ebp - 0x28]
test dword [0xa5689b], eax
jne 0x6ed7ba
mov ecx, 0xf8
add ecx, dword [0xa56da8]
mov dword [ebp - 0x2c], ecx
call fcn.006a3200
nop
mov eax, dword [ebp - 0x24]
xor al, 0x84
mov byte [4], al
mov ecx, dword [ebp - 0x2c]
call fcn.006a32c0
nop
mov ecx, dword [ebp - 0x44]
call fcn.006a8bb0
lea eax, [ebp - 0x4c]
mov ecx, dword [ebp - 0x20]
push eax
push 0xa4a787
call fcn.00696800
nop
mov eax, dword [ebp - 0x28]
test dword [0xa5689b], eax
jne 0x6ed803
mov ecx, 0xf8
add ecx, dword [0xa56da8]
mov dword [ebp - 0x2c], ecx
call fcn.006a3200
invalid
nop
mov ecx, dword [ebp - 0x20]
push 0xa4a787
call 0x6cc970
mov byte [ebp - 0x2c], al
cmp byte [ebp - 0x2c], 0
je 0x6edc6f
nop
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x20]
test dword [ecx + 0x10c], eax
jne 0x6ed840
nop
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x28]
test dword [eax + 0x108], ecx
je 0x6ee176
nop
mov eax, dword [ebp - 0x28]
test dword [0xa5689b], eax
jne 0x6ed86f
mov ecx, 0xf8
add ecx, dword [0xa56da8]
mov dword [ebp - 0x34], ecx
call fcn.006a3200
invalid
nop
mov ecx, dword [ebp - 0x20]
push 0xa4a787
call 0x6c8e40
call 0x73b950
nop
mov eax, dword [ebp - 0x28]
test dword [0xa5689b], eax
jne 0x6ed8b4
mov ecx, 0xf8
add ecx, dword [0xa56da8]
mov dword [ebp - 0x34], ecx
call fcn.006a3200
nop
mov eax, dword [ebp - 0x24]
xor al, 0x85
mov byte [5], al
mov ecx, dword [ebp - 0x34]
call fcn.006a32c0
call fcn.006ee4e0
mov dword [ebp - 0x34], eax
nop
mov eax, dword [0xa56cbe]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x20]
push dword [0xa56cc2]
call fcn.00696530
nop
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx + 0x108]
mov edx, ecx
not edx
mov edi, dword [ebp - 0x24]
mov esi, edi
xor esi, 0xbaeb037f
and esi, edx
xor ecx, edi
xor ecx, 0x4514fc80
or ecx, esi
xor edx, edx
cmp ecx, 0xffffffff
sete dl
mov ecx, dword [ebp - 0x34]
push dword [ebp - 0x30]
push eax
push edx
push dword [0xa56cc6]
call fcn.006a44a0
nop
mov dword [0xa56cc6], 0
mov dword [0xa56cbe], 0
mov ecx, dword [ebp - 0x20]
call fcn.0068b270
nop
mov ecx, dword [ebp - 0x20]
push 0
push 1
call fcn.006870e0
nop
mov edx, dword [ebp - 0x24]
xor edx, 0x4516fc84
mov eax, dword [ebp - 0x20]
mov ecx, edx
mov dword [ebp - 0x34], edx
test dword [eax + 0x108], edx
je 0x6eda25
nop
mov eax, dword [0xa587a8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 0x2682c], 0
jne 0x6ed979
call fcn.006efca0
nop
mov eax, dword [0xa587a8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 0x25804], 0
jne 0x6eda25
nop
cmp dword [0xa570a8], 0
jne 0x6ed9cd
nop
mov eax, dword [ebp - 0x24]
xor eax, 0x4516fcd0
push eax
call fcn.008ea17d
add esp, 4
nop
mov dword [ebp - 0x10], 5
mov dword [ebp - 0x30], eax
mov ecx, eax
call fcn.006eef90
nop
mov eax, dword [ebp - 0x30]
mov dword [0xa570a8], eax
nop
mov eax, dword [0xa570a8]
mov dword [ebp - 0x30], eax
mov eax, dword [0xa56cf6]
mov dword [ebp - 0x48], eax
mov eax, dword [0xa56cfa]
mov dword [ebp - 0x10], 3
mov ecx, dword [ebp - 0x20]
push eax
call fcn.00696530
nop
mov ecx, dword [ebp - 0x30]
push dword [ebp - 0x48]
push eax
push dword [0xa568c3]
call fcn.006ff460
nop
mov dword [0xa568c3], 0
mov dword [0xa56cf6], 0
mov dword [0xa56cfa], 0
nop
mov ebx, dword [ebp - 0x24]
mov eax, ebx
xor eax, 0x4516fc88
mov ecx, dword [ebp - 0x20]
test dword [ecx + 0x108], eax
je 0x6eda93
nop
cmp dword [0xa5705c], 0
jne 0x6eda72
nop
mov eax, dword [ebp - 0x24]
xor eax, 0x4516fcd0
push eax
call fcn.008ea17d
add esp, 4
nop
mov dword [ebp - 0x10], 4
mov dword [ebp - 0x30], eax
mov ecx, eax
call fcn.006e7a70
nop
mov eax, dword [ebp - 0x30]
mov dword [0xa5705c], eax
nop
mov eax, dword [0xa5705c]
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx + 0x108]
mov ebx, dword [ebp - 0x24]
mov edx, ebx
xor dl, 0x12
movzx edx, dl
bt ecx, edx
setb byte [eax + 5]
xor ebx, 0xba69037f
mov eax, dword [0xa5689b]
mov ecx, eax
not ecx
xor eax, dword [ebp - 0x28]
mov dword [ebp - 0x5c], ebx
and ecx, ebx
or ecx, eax
cmp ecx, 0xffffffff
jne 0x6edadc
mov ecx, 0xf8
add ecx, dword [0xa56da8]
mov dword [ebp - 0x10], 3
mov dword [ebp - 0x30], ecx
call fcn.006a3200
in ax, 0x64
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x30]
call fcn.006a32c0
nop
cmp dword [0xa5704c], 0
mov dword [ebp - 0x10], 3
jne 0x6edb3e
nop
mov eax, dword [ebp - 0x24]
xor eax, 0x4516fcac
push eax
call fcn.008ea17d
add esp, 4
nop
mov esi, dword [ebp - 0x24]
mov ecx, esi
xor ecx, 0x4516fc94
mov edx, esi
xor edx, 0x4516fc98
mov dword [eax + ecx], 0
mov ecx, esi
xor ecx, 0x4516fc8f
mov dword [eax + edx], ecx
mov ecx, dword [ebp - 0x34]
mov byte [eax + ecx], 0
mov dword [eax], 0x9a41c0
xorps xmm0, xmm0
movups xmmword [eax + 0x1c], xmm0
mov dword [0xa5704c], eax
nop
mov eax, dword [0xa5704c]
mov dword [ebp - 0x34], eax
mov eax, dword [0xa56d06]
mov dword [ebp - 0x30], eax
mov eax, dword [0xa56d02]
mov dword [ebp - 0x48], eax
mov eax, dword [0xa56cfe]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x138]
movzx eax, word [0xa56918]
push eax
call fcn.00785410
nop
mov ecx, dword [ebp - 0x34]
push dword [ebp - 0x30]
push dword [ebp - 0x48]
push dword [ebp - 0x50]
push eax
call fcn.006ee6f0
nop
mov eax, dword [ebp - 0x24]
xor eax, 0x5516fc80
test dword [0xa56d0a], eax
je 0x6edbaf
nop
mov eax, dword [0xa587a8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
inc dword [eax + 0x25808]
nop
mov dword [0xa56d02], 0
mov dword [0xa56d06], 0
mov eax, dword [ebp - 0x28]
test dword [0xa5689b], eax
jne 0x6edbf5
mov ecx, 0xf8
add ecx, dword [0xa56da8]
mov dword [ebp - 0x34], ecx
call fcn.006a3200
nop
mov eax, dword [ebp - 0x24]
xor al, 0x86
mov byte [6], al
mov ecx, dword [ebp - 0x34]
call fcn.006a32c0
nop
mov eax, dword [0xa56d0a]
mov edx, dword [ebp - 0x24]
mov ecx, edx
xor ecx, eax
xor ecx, 0xbae9034f
and ecx, eax
xor ecx, edx
cmp ecx, 0x4516fca0
jne 0x6ee200
nop
mov eax, dword [ebp - 0x24]
xor eax, 0x451efc80
mov ecx, dword [ebp - 0x20]
test dword [ecx + 0x108], eax
jne 0x6ee200
nop
mov eax, dword [ebp - 0x24]
xor eax, 0xf97f
mov ecx, dword [ebp - 0x44]
cmp word [ecx + 6], ax
ja 0x6ee200
call fcn.006eb9f0
mov esi, eax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 0x1c8]
mov eax, dword [ebp - 0x24]
xor eax, 0x4516fc8f
cmp dword [esi + 0x20], eax
jbe 0x6ee1e6
mov esi, dword [esi + 0xc]
jmp 0x6ee1e9
nop
mov eax, dword [0xa4a787]
mov ecx, eax
or ecx, 1
mov dword [0xa4a787], ecx
test dword [ebp - 0x54], eax
je 0x6ee087
nop
mov eax, dword [ebp - 0x24]
xor eax, 0x4516fc90
test dword [0xa4a78b], eax
je 0x6edca8
nop
push 0xa4a787
call fcn.006c70e0
add esp, 4
call fcn.006e3a40
cmp dword [ebp + 0xc], 0
jne 0x6edcd8
nop
mov esi, dword [0xa580cc]
test esi, esi
je 0x6edcd8
mov ecx, esi
call fcn.00667f20
push esi
call fcn.008ea1c0
add esp, 4
mov dword [0xa580cc], 0
nop
push dword [ebp + 0xc]
push 0
push 0
call fcn.008ea7b2
jmp 0x6ee168
cmp dword [ebp + 8], 0
jne 0x6ee328
xor edx, 0xbae9035f
test edx, eax
je 0x6ee1c4
nop
mov edi, dword [0xa4a7ab]
jmp 0x6ee331
nop
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax]
add ecx, eax
mov dword [ebp - 0x3c], ecx
nop
cmp dword [ebp - 0x38], 0
jle 0x6ed11c
mov eax, ebx
xor eax, edx
mov dword [ebp - 0x20], eax
and ebx, edx
mov dword [ebp - 0x28], ebx
mov ecx, dword [ebp - 0x24]
mov eax, ecx
xor eax, 0x4516fc84
mov dword [ebp - 0x40], eax
mov eax, dword [0xa18edc]
xor eax, ecx
mov dword [ebp - 0x34], eax
mov eax, dword [0xa18ed8]
xor eax, ecx
mov dword [ebp - 0x30], eax
mov eax, ecx
shr eax, 2
mov dword [ebp - 0x2c], eax
mov edx, ecx
shl edx, 0x1e
xor edx, ecx
mov edi, edx
xor edi, 0x4516fc84
mov dword [ebp - 0xa0], edi
mov edi, eax
xor edi, 0x1145bf20
mov dword [ebp - 0x9c], edi
mov edi, ecx
shr edi, 3
mov eax, ecx
shl eax, 0x1d
xor eax, ecx
xor eax, 0x7b4c1d05
xor edi, 0x1584ec97
mov esi, ecx
shr esi, 1
mov ebx, ecx
shl ebx, 0x1f
xor ebx, ecx
xor ebx, 0x84b3e2fa
xor esi, 0xc052b2b8
add ebx, eax
adc esi, edi
add ebx, 1
mov dword [ebp - 0x94], ebx
adc esi, 0
mov dword [ebp - 0x98], esi
xor edx, 0x870699d6
mov edi, dword [ebp - 0x2c]
xor edi, 0xb15f51c6
mov eax, ecx
shr eax, 4
mov esi, ecx
shl esi, 0x1c
xor esi, ecx
xor esi, 0x78f96629
xor eax, 0x5bb47ed1
add esi, edx
adc eax, edi
add esi, 1
mov dword [ebp - 0x8c], esi
adc eax, 0
mov dword [ebp - 0x90], eax
mov eax, ecx
xor eax, 0xff4e3292
mov edi, ecx
xor edi, 0x9d46d5bb
lea edx, [ecx + ecx]
mov esi, edx
xor esi, 0xcf8ac8ed
mov ebx, ecx
xor ebx, 0x62b92a44
add ebx, edi
adc esi, eax
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
lea eax, [eax + edi*2]
mov dword [ebp - 0x48], eax
add ebx, 1
mov dword [ebp - 0x84], ebx
adc esi, 0
mov dword [ebp - 0x88], esi
lea eax, [ecx*4]
xor eax, 0x145bf200
mov dword [ebp - 0x80], eax
mov eax, ecx
xor eax, 0x4516fc87
mov dword [ebp - 0x7c], eax
mov eax, ecx
xor eax, 0x4516fc83
mov dword [ebp - 0x78], eax
mov eax, ecx
xor eax, 0xe2c1721d
mov dword [ebp - 0x74], eax
xor ecx, 0x8f3b2c2c
xor edx, 0x75d206f7
mov dword [ebp - 0x70], ecx
lea eax, [edx + ecx]
inc eax
mov dword [ebp - 0x6c], eax
xor ecx, ecx
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x50], 0
jmp 0x6edeb2
mov ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 0x40]
xor dword [ebp - 0x2c], edx
cmp ecx, dword [ebp - 0x38]
jge 0x6ed11c
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], ecx
lea edx, [eax + ecx]
cmp dword [ebp - 0x34], 0xc84075b9
jne 0x6edfd0
nop
mov eax, dword [ebp - 0x94]
sub eax, edx
mov esi, dword [ebp - 0x98]
sbb esi, 0
mov ecx, edx
mul edx
imul esi, ecx
mov dword [ebp - 0x44], ecx
add esi, edx
add eax, dword [ebp - 0x8c]
adc esi, dword [ebp - 0x90]
shld esi, eax, cl
shl eax, cl
test cl, 0x20
cmovne esi, eax
mov ecx, 0
cmovne eax, ecx
mov ecx, dword [ebp - 0x84]
mov ebx, dword [ebp - 0x3c]
add ecx, ebx
mov edi, dword [ebp - 0x88]
adc edi, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x44]
sbb edi, 0
add ecx, eax
adc edi, esi
mov dword [ebp - 0xa4], edi
mov eax, ebx
shl eax, cl
test cl, 0x20
mov esi, eax
mov edx, 0
cmovne esi, edx
mov dword [ebp - 0xa8], esi
mov edi, dword [ebp - 0x28]
mov esi, edi
shld esi, ebx, cl
test cl, 0x20
cmovne esi, eax
mov dword [ebp - 0x5c], esi
mov eax, ebx
neg eax
sbb edx, edi
mov esi, eax
shl esi, cl
test cl, 0x20
mov ebx, esi
mov edi, 0
cmovne ebx, edi
shld edx, eax, cl
test cl, 0x20
cmovne edx, esi
mov eax, ecx
sub eax, ebx
mov esi, dword [ebp - 0xa4]
mov ebx, esi
sbb ebx, edx
imul ebx, ecx
imul esi, eax
mov edi, esi
mul ecx
mov ecx, eax
mov esi, edx
add esi, edi
add esi, ebx
sub ecx, dword [ebp - 0xa8]
sbb esi, dword [ebp - 0x5c]
mov ebx, ecx
not ebx
mov eax, ecx
mul ebx
imul ebx, esi
not esi
imul esi, ecx
add ebx, edx
add ebx, esi
cmp eax, dword [ebp - 0x40]
sbb ebx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x44]
mov edx, dword [edx + ecx*4]
jge 0x6edfec
jmp 0x6ee037
nop
mov eax, dword [ebp - 0x3c]
sub eax, edx
mov ecx, dword [ebp - 0x28]
sbb ecx, 0
cmp eax, dword [ebp - 0xa0]
sbb ecx, dword [ebp - 0x9c]
mov edx, dword [edx]
jge 0x6ee037
mov ebx, eax
mov ecx, dword [ebp - 0x78]
shl ebx, cl
mov esi, 0xffffffff
mov ecx, ebx
shl esi, cl
not esi
and edx, esi
mov ecx, eax
mov esi, dword [ebp - 0x74]
xor ecx, esi
mov edi, dword [ebp - 0x20]
sub edi, esi
add edi, ecx
mov ebx, dword [ebp - 0x50]
lea ecx, [ebx + 1]
and eax, esi
lea edi, [edi + eax*2]
mov dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x58]
lea esi, [eax + ebx*4]
add esi, 4
add esi, dword [eax + ebx*4 + 4]
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x28], 0
nop
mov dword [ebp - 0x50], ecx
cmp dword [ebp - 0x30], 0xed25c1a0
jne 0x6edea0
mov esi, dword [ebp - 0x2c]
mov eax, esi
mov ecx, edx
shl eax, cl
mov ecx, dword [ebp - 0x70]
mov edi, dword [ebp - 0x20]
sub edi, ecx
imul edi, ecx
shl edi, cl
sub edi, ecx
inc edi
imul edi, ecx
add edi, dword [ebp - 0x6c]
imul edi, ecx
add ecx, edi
lea edx, [ecx + edi]
imul ecx, edi
sub edx, ecx
xor esi, eax
mov dword [ebp - 0x2c], esi
mov eax, edx
cmp edx, dword [ebp - 0x38]
mov ecx, edx
jbe 0x6edeb2
jmp 0x6ed11c
nop
mov esi, dword [0xa57008]
test esi, esi
je 0x6ee0b6
nop
mov eax, dword [esi]
mov edi, dword [eax]
mov dword [ebp - 0x10], 0xffffffff
mov ecx, edi
call dword [0xa0535c]
mov ecx, esi
push 1
call edi
mov dword [0xa57008], 0
nop
mov esi, dword [0xa5702c]
test esi, esi
je 0x6ee0e5
nop
mov eax, dword [esi]
mov edi, dword [eax]
mov dword [ebp - 0x10], 0xffffffff
mov ecx, edi
call dword [0xa0535c]
mov ecx, esi
push 1
call edi
mov dword [0xa5702c], 0
nop
mov esi, dword [0xa57050]
test esi, esi
je 0x6ee114
nop
mov eax, dword [esi]
mov edi, dword [eax]
mov dword [ebp - 0x10], 0xffffffff
mov ecx, edi
call dword [0xa0535c]
mov ecx, esi
push 1
call edi
mov dword [0xa57050], 0
nop
mov esi, dword [0xa56ff0]
test esi, esi
je 0x6ee143
nop
mov eax, dword [esi]
mov edi, dword [eax]
mov dword [ebp - 0x10], 0xffffffff
mov ecx, edi
call dword [0xa0535c]
mov ecx, esi
push 1
call edi
mov dword [0xa56ff0], 0
nop
mov esi, dword [0xa580cc]
test esi, esi
je 0x6ee168
mov ecx, esi
call fcn.00667f20
push esi
call fcn.008ea1c0
add esp, 4
mov dword [0xa580cc], 0
nop
mov edi, dword [0xa4a7ab]
xor ebx, ebx
jmp 0x6ee309
nop
mov eax, dword [ebp - 0x3c]
cmp dword [eax + 0x2f4], 0
je 0x6ed840
nop
mov eax, dword [ebp - 0x3c]
cmp dword [eax + 0x2f8], 0
je 0x6ed840
nop
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 0x2fc]
mov dword [ebp - 0x10], 0xffffffff
call dword [0xa0535c]
mov dword [ebp - 0x10], 3
push 0
call ecx
call fcn.006ece90
jmp 0x6ed840
mov edi, dword [ebp - 0x24]
mov eax, edi
xor eax, 0x4516f484
mov edx, eax
xor edx, ecx
test eax, edx
jne 0x6ee34a
nop
mov edi, dword [0xa4a7ab]
jmp 0x6ee331
add esi, 0xc
mov dword [ebp - 0x10], 0xffffffff
call dword [0xa0535c]
mov dword [ebp - 0x10], 3
push esi
call ecx
nop
cmp dword [0xa56ff0], 0
jne 0x6ee25b
nop
mov eax, dword [ebp - 0x24]
xor eax, 0x4516fc48
push eax
call fcn.008ea17d
add esp, 4
nop
mov dword [eax], 0x920f64
mov dword [eax + 0x1c], 0
mov ecx, dword [ebp - 0x24]
xor ecx, 0x4516fc8f
mov dword [eax + 0x20], ecx
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0x920fc0
mov dword [eax + 0x24], 0
mov dword [eax + 0x28], 0
mov dword [eax + 4], 0
mov dword [0xa56ff0], eax
nop
mov eax, dword [0xa56ff0]
mov eax, dword [eax + 0x24]
add eax, dword [0xa56d0e]
mov dword [0xa4a7ab], eax
mov eax, dword [0xa5689b]
mov ecx, dword [ebp - 0x28]
xor ecx, eax
not eax
mov edx, dword [ebp - 0x5c]
and edx, eax
or edx, ecx
cmp edx, 0xffffffff
jne 0x6ee2ab
mov ecx, 0xf8
add ecx, dword [0xa56da8]
mov dword [ebp - 0x28], ecx
call fcn.006a3200
in ax, 0x64
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x28]
call fcn.006a32c0
nop
mov eax, dword [0xa4a79b]
mov edx, dword [ebp - 0x24]
mov ecx, edx
xor ecx, eax
xor ecx, 0x7ae9037f
and ecx, eax
xor ecx, edx
cmp ecx, 0xc516fc80
jne 0x6ee2f0
nop
push dword [ebp - 0xb4]
push dword [ebp - 0xac]
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
nop
push dword [ebp - 0xb8]
push dword [ebp - 0xb0]
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
nop
mov eax, dword [ebp - 0x20]
mov byte [eax + 0x4d8], 0
or byte [0xa4a787], 1
nop
mov ebx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x40]
nop
mov esi, dword [ebp - 0x4c]
test esi, esi
je 0x6ee321
mov ecx, esi
call fcn.00659f10
push esi
call fcn.008ea1c0
add esp, 4
nop
cmp byte [ebp - 0x2c], 0
je 0x6ee331
nop
mov edi, dword [0xa4a7ab]
xor ebx, ebx
nop
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, edi
mov edx, ebx
add esp, 0x4e4
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, edi
xor eax, 0x4516fc00
test dword [0xa5689b], eax
je 0x6ee367
nop
push dword [ebp + 0xc]
call fcn.006ebc00
add esp, 4
jmp 0x6ee328
mov eax, edi
xor eax, 0x4516fc84
or eax, ecx
mov dword [0xa4a787], eax
mov esi, dword [0xa4a7ab]
xor edi, 0x4516fc9c
lea eax, [ebp - 0x4f0]
push edi
push eax
push 0xa4a787
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
mov edi, dword [ebp - 0x4ec]
mov ecx, esi
call dword [0xa0535c]
mov ebx, dword [ebp + 0xc]
push ebx
push 0
push edi
call esi
push ebx
call fcn.006ebc00
add esp, 4
xor edi, edi
xor ebx, ebx
jmp 0x6ee331
nop
mov dword [ebp - 0x10], 1
call fcn.008cd651
nop
mov dword [ebp - 0x10], 2
call fcn.008cd651
nop word [eax + eax]
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.00901a00
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.00901a00
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
lea ecx, [ebp - 0xd4]
call fcn.00657390
add esp, 0x10
pop ebp
ret