Function at 0x5ae3b0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x4cc
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x5b0f00
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.005b0e80
mov ebx, eax
mov eax, dword [0xb46a17]
mov ecx, ebx
xor ecx, 0x5b3a89fc
test eax, ecx
je 0x5ae417
cmp dword [0xb46a47], 0
je 0x5ae417
test al, 1
jne 0x5ae417
cmp byte [ebp + 0x10], 0
jne 0x5ae417
xor edi, edi
mov ebx, 0x5add60
jmp 0x5af3fb
test al, 1
jne 0x5ae8ab
mov dword [ebp - 0x30], ecx
mov dword [0xb46a43], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0xa0], xmm0
cmp dword [0xb46a2b], 0
jns 0x5ae47d
call sub.KERNEL32.dll_GetCurrentProcess
mov dword [ebp - 0x98], eax
call sub.KERNEL32.dll_GetCurrentThread
mov dword [ebp - 0x94], eax
mov eax, dword [0xb46a2b]
not eax
mov ecx, ebx
xor ecx, 0x64c57703
and ecx, eax
mov edx, ebx
xor edx, 0x9b3a88fc
or edx, ecx
not edx
lea ecx, [ebp - 0xa0]
call fcn.005b0e00
call sub.KERNEL32.dll_GetProcessHeap
mov edi, ebx
xor edi, 0x5b3a8860
push edi
push eax
call fcn.005b0dd0
mov esi, eax
test eax, eax
jne 0x5ae4ab
call sub.KERNEL32.dll_GetCurrentProcess
mov ecx, ebx
xor ecx, 0x5b3a88ee
push ecx
push eax
call sub.KERNEL32.dll_TerminateProcess
mov dword [esi], edi
push esi
call sub.KERNEL32.dll_GetVersionExA
test eax, eax
jne 0x5ae4d7
call sub.KERNEL32.dll_GetProcessHeap
push esi
push eax
call fcn.005b0e20
call sub.KERNEL32.dll_GetCurrentProcess
mov ecx, ebx
xor ecx, 0x5b3a8803
push ecx
push eax
call sub.KERNEL32.dll_TerminateProcess
push dword [ebp + 0xc]
push 1
call fcn.005b0b60
call fcn.0055d700
cmp dword [0xb53288], 0
jne 0x5ae539
mov ecx, ebx
xor ecx, 0x5b3a8834
call fcn.0053d610
mov dword [eax], 0x799e1c
mov dword [eax + 0x1c], 0
mov ecx, ebx
xor ecx, 0x5b3a88f3
mov dword [eax + 0x20], ecx
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0x799e70
mov dword [eax + 0x24], 0
mov dword [eax + 0x28], 0
mov dword [eax + 4], 0
mov dword [0xb53288], eax
mov edi, dword [0xb53288]
lea eax, [edi + 0x2c]
push 0x9c
push esi
push eax
call fcn.0077cce0
add esp, 0xc
mov ecx, edi
call fcn.005b0d60
mov ecx, edi
call fcn.005b0d30
call sub.KERNEL32.dll_GetProcessHeap
push esi
push eax
call fcn.005b0e20
cmp dword [0xb54388], 0
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x5c], edi
jne 0x5ae5a6
xor ebx, 0x5b3a8c04
mov ecx, ebx
call fcn.0053d610
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x20], eax
mov ecx, eax
call fcn.00529c80
mov eax, dword [ebp - 0x20]
mov dword [0xb54388], eax
mov ebx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x5c]
mov esi, dword [0xb54388]
mov dword [esi + 0x1c0], sub.KERNEL32.dll_GetModuleHandleA
mov dword [ebp - 0x10], 0xffffffff
push 0
call sub.KERNEL32.dll_GetModuleHandleA
mov dword [edi + 0x28], eax
mov eax, ebx
xor eax, 0x8efc
cmp word [edi + 6], ax
seta byte [esi + 0x2dd]
mov eax, ebx
xor eax, 0x8efd
cmp word [edi + 6], ax
mov dword [ebp - 0x44], esi
seta byte [esi + 0x2de]
mov esi, edi
mov edi, 0xb46a17
sub edi, dword [0xb46a37]
lea eax, [ebp - 0x4d8]
push 0x400
push 0
push eax
call fcn.0077d260
add esp, 0xc
mov eax, ebx
xor eax, 0x5b3a8cfc
mov dword [ebp - 0x28], eax
push eax
lea eax, [ebp - 0x4d8]
push eax
push edi
call sub.KERNEL32.dll_GetModuleFileNameA
mov dword [esi + 0x24], edi
lea ecx, [esi + 8]
lea edx, [ebp - 0x4d8]
call fcn.0055d910
call fcn.005adbe0
mov dword [ebp - 0x50], 0
mov eax, dword [0xb52b77]
mov dword [ebp - 0x20], eax
xor ebx, 0x5b3a88d8
mov dword [ebp - 0x10], 3
mov dword [ebp - 0x2c], ebx
mov ecx, ebx
call fcn.0053d610
mov ecx, eax
mov eax, dword [0xb52b73]
mov edx, dword [ebp - 0x20]
add edx, eax
add edx, 0xb46a17
mov dword [ebp - 0x10], 6
mov dword [ebp - 0x20], ecx
call fcn.005b0b90
mov esi, dword [ebp - 0x50]
mov edi, dword [ebp - 0x20]
cmp esi, edi
sete al
test esi, esi
sete cl
xor cl, al
jne 0x5ae6a8
mov ecx, esi
call fcn.0051c760
mov ecx, esi
call fcn.0053d620
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x10], 3
mov ecx, dword [ebp - 0x44]
mov edx, edi
call fcn.005b0bd0
test al, al
jne 0x5ae6d5
call sub.KERNEL32.dll_GetCurrentProcess
mov ecx, dword [ebp - 0x24]
xor ecx, 0x5b3a8803
push ecx
push eax
call sub.KERNEL32.dll_TerminateProcess
mov eax, dword [0xb46a17]
mov edx, dword [ebp - 0x28]
xor edx, eax
mov ecx, dword [ebp - 0x24]
xor ecx, 0xa4c57303
and eax, ecx
xor eax, ecx
or eax, edx
cmp eax, 0xffffffff
je 0x5ae86b
mov eax, dword [ebp - 0x44]
cmp dword [eax + 0x460], 0
je 0x5ae86b
lea ecx, [ebp - 0xd8]
lea edx, [ebp - 0x4d8]
call fcn.005607f0
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x460]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x10], 7
lea ecx, [ebp - 0xd8]
lea edx, [ebp - 0xbc]
call fcn.00571230
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor ecx, 0x5b3a88f8
lea esi, [ecx + ebp]
add esi, 0xffffff44
mov edx, eax
xor edx, 0x5b3a88e4
xor eax, 0x5b3a88f3
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x20], eax
cmp dword [ebp + edx - 0xbc], eax
jbe 0x5ae776
mov esi, dword [ebp + ecx - 0xbc]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x10], 0xffffffff
mov ecx, dword [ebp - 0x3c]
call dword [0xb0836c]
mov dword [ebp - 0x10], 8
push esi
call ecx
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp + edi - 0xbc]
mov esi, dword [ebp - 0x20]
cmp eax, esi
mov ebx, dword [ebp - 0x24]
jbe 0x5ae813
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ecx]
lea edx, [eax + 1]
mov esi, ebx
xor esi, 0x5b3a8703
cmp edx, esi
jbe 0x5ae80b
mov esi, ebx
xor esi, 0xa4c57700
mov edi, ebx
xor edi, 0x5b3a88ff
mov ebx, edi
and ebx, ecx
mov edx, esi
xor edx, ecx
or edx, ebx
mov ebx, ecx
not ebx
and edi, ebx
and esi, ecx
or esi, edi
xor edi, ebx
mov ebx, dword [ebp - 0x24]
xor esi, ecx
or edi, esi
mov ecx, dword [ecx - 4]
lea esi, [ecx + edi*2]
sub edx, esi
add edx, 0xfffffffe
mov esi, ebx
xor esi, 0x5b3a88dc
cmp edx, esi
jae 0x5af492
add eax, dword [ebp - 0x2c]
mov edx, eax
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x20]
call fcn.0053e020
mov eax, dword [ebp + edi - 0xd8]
cmp eax, esi
jbe 0x5ae86b
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ebp + ecx - 0xd8]
lea edx, [eax + 1]
mov esi, ebx
xor esi, 0x5b3a8703
cmp edx, esi
ja 0x5ae840
test byte [0xb53330], 1
je 0x5ae866
mov esi, dword [ecx - 4]
mov edx, ebx
xor edx, 0xa4c57700
add edx, ecx
sub edx, esi
mov ecx, ebx
xor ecx, 0x5b3a88dc
cmp edx, ecx
jae 0x5af49e
add eax, dword [ebp - 0x2c]
mov edx, eax
mov ecx, esi
call fcn.0053e020
mov dword [ebp - 0x10], 3
call fcn.00520a40
mov dword [ebp - 0x20], eax
movzx ecx, byte [ebp + 0x10]
xor cl, 1
mov eax, dword [ebp - 0x20]
mov byte [eax + 0x4d8], cl
push eax
call fcn.005968f0
add esp, 4
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor ecx, 0x5bba88fc
mov dword [ebp - 0x38], ecx
test dword [0xb52b2b], ecx
je 0x5ae8f7
jmp 0x5ae91c
xor edi, edi
test eax, ecx
je 0x5ae8f0
mov ecx, dword [0xb46a1b]
mov edx, ebx
xor edx, 0x5b3a88ec
test ecx, edx
je 0x5af0af
add ecx, ecx
mov dword [0xb46a1b], ecx
xor ebx, 0x5b3a88f9
or eax, ebx
mov dword [0xb46a17], eax
mov dword [0xb46a3b], 0x5add60
mov ebx, 0x5add60
jmp 0x5af3fb
xor ebx, ebx
jmp 0x5af3fb
mov ecx, 0xf8
add ecx, dword [0xb53038]
mov dword [ebp - 0x28], ecx
call fcn.0053e0b0
int3
mov edx, eax
xor edx, 0xa4457703
mov eax, dword [0xb52b2b]
mov ecx, eax
xor ecx, dword [ebp - 0x38]
not eax
mov dword [ebp - 0x58], edx
and eax, edx
or eax, ecx
cmp eax, 0xffffffff
jne 0x5ae961
mov ecx, 0xf8
add ecx, dword [0xb53038]
mov dword [ebp - 0x28], ecx
call fcn.0053e0b0
mov eax, dword [ebp - 0x24]
xor al, 0xf8
mov byte [4], al
mov ecx, dword [ebp - 0x28]
call fcn.0053dfb0
mov ecx, dword [ebp - 0x5c]
call fcn.005b0be0
lea edx, [ebp - 0x50]
mov ecx, dword [ebp - 0x20]
call fcn.005b0bf0
mov eax, dword [ebp - 0x38]
test dword [0xb52b2b], eax
jne 0x5ae9a2
mov ecx, 0xf8
add ecx, dword [0xb53038]
mov dword [ebp - 0x28], ecx
call fcn.0053e0b0
invalid
mov ecx, dword [ebp - 0x20]
call 0x5b0c00
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x5aef43
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x30]
test dword [eax + 0x10c], ecx
jne 0x5ae9e0
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x108]
mov ecx, eax
xor ecx, dword [ebp - 0x38]
and ecx, dword [ebp - 0x58]
not ecx
test eax, ecx
je 0x5af26e
mov eax, dword [ebp - 0x38]
test dword [0xb52b2b], eax
jne 0x5aea0e
mov ecx, 0xf8
add ecx, dword [0xb53038]
mov dword [ebp - 0x28], ecx
call fcn.0053e0b0
invalid
mov ecx, dword [ebp - 0x20]
call 0x5b0c10
call 0x5b0c20
mov eax, dword [0xb52b2b]
mov ecx, eax
xor ecx, dword [ebp - 0x38]
not eax
and eax, dword [ebp - 0x58]
or eax, ecx
cmp eax, 0xffffffff
jne 0x5aea56
mov ecx, 0xf8
add ecx, dword [0xb53038]
mov dword [ebp - 0x28], ecx
call fcn.0053e0b0
mov eax, dword [ebp - 0x24]
xor al, 0xf9
mov byte [5], al
mov ecx, dword [ebp - 0x28]
call fcn.0053dfb0
call fcn.005af5b0
mov dword [ebp - 0x28], eax
mov eax, dword [0xb52f4e]
mov dword [ebp - 0x30], eax
mov edx, dword [0xb52f52]
mov ecx, dword [ebp - 0x20]
call fcn.0053e120
mov edx, dword [ebp - 0x24]
mov ecx, edx
xor ecx, 0x5b3888fc
xor edx, 0xa4c77703
or ecx, edx
xor edx, ecx
mov esi, dword [ebp - 0x20]
and edx, dword [esi + 0x108]
xor edx, ecx
xor ebx, ebx
cmp edx, 0xffffffff
sete bl
mov edx, dword [0xb52f56]
mov ecx, dword [ebp - 0x28]
push dword [ebp - 0x30]
push eax
push ebx
call fcn.005b0c30
add esp, 0xc
mov esi, dword [ebp - 0x24]
mov ecx, esi
shl ecx, 0x1e
xor ecx, esi
mov dword [ebp - 0x64], ecx
xor ecx, 0xb906e137
mov eax, esi
shl eax, 0x1f
xor eax, esi
xor eax, 0x48dbac34
add eax, ecx
mov ecx, esi
xor ecx, 0x782ccc18
mov edx, esi
shl edx, 0x1c
xor edx, esi
mov dword [ebp - 0x28], edx
xor edx, 0x86f91ec8
add edx, ecx
mov ecx, esi
shl ecx, 0x1b
xor ecx, esi
xor ecx, 0x572453cb
xor esi, 0x87d333e7
add esi, ecx
add esi, eax
mov eax, dword [0xb1a988]
add esi, edx
mov dword [ebp - 0x3c], eax
add esi, dword [eax]
mov dword [ebp - 0x30], esi
mov eax, dword [0xaaad80]
mov dword [ebp - 0x54], eax
mov eax, dword [0xb1a98c]
add eax, dword [eax]
mov dword [ebp - 0x68], eax
mov dword [0xb52f56], 0
mov dword [0xb52f4e], 0
mov ecx, dword [ebp - 0x20]
call fcn.005b0c50
mov ecx, dword [ebp - 0x20]
call fcn.005b0c60
mov eax, dword [ebp - 0x20]
mov edi, dword [eax + 0x108]
mov eax, dword [ebp - 0x24]
mov edx, eax
xor edx, 0x5b3a88f8
xor eax, 0xa4c57707
mov ecx, edi
mov esi, edx
mov dword [ebp - 0x60], edx
xor ecx, edx
not edi
and edi, eax
or edi, ecx
mov dword [ebp - 0x78], edi
mov edx, dword [0xb53334]
mov eax, edx
xor eax, 1
mov ecx, edx
and ecx, 1
lea eax, [eax + ecx*2]
mov dword [0xb53334], eax
xor esi, esi
mov edi, 0
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x70], eax
test eax, edx
je 0x5af0f8
mov dword [ebp - 0x30], edi
cmp dword [ebp - 0x78], 0xffffffff
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x28], esi
je 0x5aec93
mov eax, ebx
xor eax, 0xc535eb3c
xor ecx, ecx
cmp dword [0xb1a990], eax
sete cl
lea eax, [ecx + ecx*4]
mov ecx, dword [0xb549d0]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp byte [ecx + 0x2682c], al
jne 0x5aebe6
call fcn.0055d7a0
mov eax, dword [0xb549d0]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 0x25804], 0
jne 0x5aec93
cmp dword [0xb53338], 0
mov dword [ebp - 0x10], 3
jne 0x5aec38
mov ecx, ebx
xor ecx, 0x5b3a88ac
call fcn.0053d610
mov dword [ebp - 0x10], 5
mov dword [ebp - 0x2c], eax
mov ecx, eax
call fcn.005afe80
mov eax, dword [ebp - 0x2c]
mov dword [0xb53338], eax
mov eax, dword [0xb53338]
mov dword [ebp - 0x3c], eax
mov eax, dword [0xb52f86]
mov dword [ebp - 0x2c], eax
mov edx, dword [0xb52f8a]
mov dword [ebp - 0x10], 3
mov ecx, dword [ebp - 0x20]
call fcn.0053e120
mov edx, dword [0xb52b53]
mov ecx, dword [ebp - 0x3c]
push dword [ebp - 0x2c]
push eax
call fcn.005b0c70
add esp, 8
mov dword [0xb52b53], 0
mov dword [0xb52f86], 0
mov dword [0xb52f8a], 0
mov ebx, dword [ebp - 0x24]
mov eax, ebx
xor eax, 0x5b3a88f4
mov ecx, ebx
xor ecx, 0xa4c5770b
mov edx, eax
xor edx, ecx
mov esi, dword [ebp - 0x20]
and edx, dword [esi + 0x108]
xor edx, ecx
mov esi, edx
xor edx, eax
not esi
and esi, ecx
or esi, edx
cmp esi, 0xffffffff
je 0x5aed16
cmp dword [0xb532ec], 0
jne 0x5aecf9
mov ecx, ebx
xor ecx, 0x5b3a88ac
mov dword [ebp - 0x10], 3
call fcn.0053d610
mov dword [ebp - 0x10], 4
mov dword [ebp - 0x2c], eax
mov ecx, eax
call fcn.005a9ab0
mov eax, dword [ebp - 0x2c]
mov dword [0xb532ec], eax
mov ebx, dword [ebp - 0x24]
mov eax, dword [0xb532ec]
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx + 0x108]
mov edx, ebx
xor dl, 0xe
movzx edx, dl
bt ecx, edx
setb byte [eax + 5]
mov eax, dword [0xb52b2b]
mov ecx, eax
not ecx
xor eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x58]
and edx, ecx
or edx, eax
cmp edx, 0xffffffff
jne 0x5aed5c
mov ecx, 0xf8
add ecx, dword [0xb53038]
mov dword [ebp - 0x10], 3
mov dword [ebp - 0x2c], ecx
call fcn.0053e0b0
in ax, 0x64
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x2c]
call fcn.0053dfb0
mov ebx, dword [ebp - 0x24]
cmp dword [0xb532e0], 0
mov dword [ebp - 0x10], 3
jne 0x5aedb7
mov ecx, ebx
xor ecx, 0x5b3a88d0
call fcn.0053d610
mov esi, dword [ebp - 0x24]
mov ecx, esi
xor ecx, 0x5b3a88e8
mov edx, esi
xor edx, 0x5b3a88e4
mov dword [eax + ecx], 0
mov ecx, esi
xor ecx, 0x5b3a88f3
mov dword [eax + edx], ecx
mov ecx, dword [ebp - 0x60]
mov byte [eax + ecx], 0
mov dword [eax], 0xaaae50
xorps xmm0, xmm0
movups xmmword [eax + 0x1c], xmm0
mov dword [0xb532e0], eax
mov eax, dword [0xb532e0]
mov dword [ebp - 0x2c], eax
mov eax, dword [0xb52f96]
mov dword [ebp - 0x3c], eax
mov eax, dword [0xb52f92]
mov dword [ebp - 0x40], eax
mov eax, dword [0xb52f8e]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x138]
movzx edx, word [0xb52ba8]
call fcn.0053ed50
mov ecx, dword [ebp - 0x2c]
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push dword [ebp - 0x54]
push eax
call fcn.005af7e0
mov ecx, dword [ebp - 0x24]
mov eax, ecx
xor eax, 0x4b3a88fc
xor ecx, 0xb4c57703
mov edx, eax
xor edx, ecx
and edx, dword [0xb52f9a]
xor edx, ecx
test edx, eax
je 0x5aee33
mov eax, dword [0xb549d0]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
inc dword [eax + 0x25808]
mov eax, dword [ebp - 0x70]
test dword [ebp - 0x74], eax
sete al
mov dword [0xb52f92], 0
mov dword [0xb52f96], 0
mov ecx, dword [ebp - 0x28]
xor ecx, dword [0xaaad88]
mov edx, dword [ebp - 0x30]
xor edx, dword [0xaaad8c]
or edx, ecx
setne cl
and cl, al
or cl, byte [0xb53330]
and cl, 1
mov byte [0xb53330], cl
mov eax, dword [ebp - 0x38]
test dword [0xb52b2b], eax
jne 0x5aeea8
mov ecx, 0xf8
add ecx, dword [0xb53038]
mov dword [ebp - 0x28], ecx
call fcn.0053e0b0
mov eax, dword [ebp - 0x24]
xor al, 0xfa
mov byte [6], al
mov ecx, dword [ebp - 0x28]
call fcn.0053dfb0
mov ecx, dword [0xb52f9a]
mov ebx, dword [ebp - 0x24]
mov eax, ebx
xor eax, 0x5b3a88cc
mov esi, eax
mov edx, ecx
and eax, ecx
not ecx
mov edi, ebx
xor edi, 0xa4c57733
and esi, ecx
and edx, edi
or edx, esi
xor edi, ecx
or eax, edi
not edx
and edx, eax
mov eax, ebx
xor eax, 0x5b3a88dc
cmp edx, eax
jne 0x5af2dc
mov ecx, dword [ebp - 0x24]
mov eax, ecx
xor eax, 0xa4cd7703
mov edx, dword [ebp - 0x20]
or eax, dword [edx + 0x108]
xor eax, ecx
cmp eax, 0xa4cd7703
jne 0x5af2dc
mov eax, dword [ebp - 0x24]
xor eax, 0x8d03
mov ecx, dword [ebp - 0x5c]
cmp word [ecx + 6], ax
ja 0x5af2dc
call fcn.005ad790
mov esi, eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 0x1c8]
mov eax, dword [ebp - 0x24]
xor eax, 0x5b3a88f3
cmp dword [esi + 0x20], eax
jbe 0x5af2c2
mov esi, dword [esi + 0xc]
jmp 0x5af2c5
mov eax, dword [0xb46a17]
mov ecx, eax
or ecx, 1
mov dword [0xb46a17], ecx
cmp byte [0xb53271], 0
mov esi, dword [ebp - 0x24]
jne 0x5aefcc
mov ecx, esi
xor ecx, 0xa4c57603
mov edx, eax
not edx
mov edi, dword [ebp - 0x30]
and edi, edx
and eax, ecx
or eax, edi
and edx, ecx
xor edx, eax
cmp edx, 0xffffffff
je 0x5aefcc
xor esi, 0x5b3a88ec
test dword [0xb46a1b], esi
je 0x5aef90
call fcn.005b0b40
call fcn.005b0b50
cmp dword [ebp + 0xc], 0
jne 0x5aefbd
mov esi, dword [0xb54388]
test esi, esi
je 0x5aefbd
mov ecx, esi
call fcn.00529fd0
mov ecx, esi
call fcn.0053d620
mov dword [0xb54388], 0
push dword [ebp + 0xc]
push 0
call fcn.005b0b60
jmp 0x5af0a2
mov esi, dword [0xb532a0]
test esi, esi
je 0x5aeff9
mov eax, dword [esi]
mov edi, dword [eax]
mov dword [ebp - 0x10], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
mov ecx, esi
push 1
call edi
mov dword [0xb532a0], 0
mov esi, dword [0xb532cc]
test esi, esi
je 0x5af026
mov eax, dword [esi]
mov edi, dword [eax]
mov dword [ebp - 0x10], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
mov ecx, esi
push 1
call edi
mov dword [0xb532cc], 0
mov esi, dword [0xb532e4]
test esi, esi
je 0x5af053
mov eax, dword [esi]
mov edi, dword [eax]
mov dword [ebp - 0x10], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
mov ecx, esi
push 1
call edi
mov dword [0xb532e4], 0
mov esi, dword [0xb53288]
test esi, esi
je 0x5af080
mov eax, dword [esi]
mov edi, dword [eax]
mov dword [ebp - 0x10], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
mov ecx, esi
push 1
call edi
mov dword [0xb53288], 0
mov esi, dword [0xb54388]
test esi, esi
je 0x5af0a2
mov ecx, esi
call fcn.00529fd0
mov ecx, esi
call fcn.0053d620
mov dword [0xb54388], 0
mov ebx, dword [0xb46a3b]
xor edi, edi
jmp 0x5af3d8
cmp dword [ebp + 8], 0
jne 0x5af3f3
mov edx, ebx
xor edx, 0x5b3a88dc
test ecx, edx
jne 0x5af0ed
mov ecx, eax
not ecx
mov edx, ebx
xor edx, 0xa4c57f07
and edx, ecx
mov ecx, ebx
xor ecx, eax
xor ecx, 0x5b3a80f8
or ecx, edx
xor ecx, 0xa4c57f07
cmp ebx, ecx
jne 0x5af413
mov ebx, dword [0xb46a3b]
jmp 0x5af3fb
mov edx, dword [ebp - 0x68]
mov eax, dword [edx]
cmp dword [ebp - 0x54], 0
jle 0x5af2b9
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
mov edi, esi
shl edi, 4
mov eax, esi
shr eax, 4
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x3c]
lea ebx, [ecx + eax]
add ebx, 3
mov dword [ebp - 0x8c], ebx
add dword [ebp - 0x2c], edx
mov eax, esi
xor eax, 0x5b3a88f4
xor edi, 0xb3a88fc0
mov dword [ebp - 0x90], edi
xor dword [ebp - 0x64], 0x5b3a88ff
xor dword [ebp - 0x40], 0x3ee8c3cb
mov ecx, dword [ebp - 0x28]
xor ecx, 0x8dd444c5
lea edi, [esi + esi]
xor edi, 0x72d18543
mov ebx, esi
xor ebx, 0xb22bbb3a
xor edx, edx
add ebx, ecx
mov dword [ebp - 0x80], ebx
adc edi, dword [ebp - 0x40]
mov dword [ebp - 0x84], edi
mov ebx, dword [ebp - 0x2c]
mov ecx, esi
xor ecx, 0xa4c5770b
mov esi, dword [ebp - 0x60]
add ecx, esi
inc ecx
mov dword [ebp - 0x7c], ecx
xor esi, esi
xor edi, edi
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x88], eax
jmp 0x5af232
mov dword [ebp - 0x40], eax
mov eax, ebx
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x64]
shl eax, cl
xor esi, esi
test cl, 0x20
cmovne eax, esi
xor esi, esi
mov ecx, eax
mov edi, 1
shld esi, edi, cl
shl edi, cl
test al, 0x20
cmovne esi, edi
mov dword [ebp - 0x3c], 0
mov eax, 0
cmovne edi, eax
add edi, dword [ebp - 0x80]
adc esi, dword [ebp - 0x84]
and dword [ebp - 0x40], esi
mov esi, dword [ebp - 0x28]
and dword [ebp - 0x2c], edi
mov edi, dword [ebp - 0x30]
add edx, dword [ebp - 0x7c]
add edx, ebx
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x6c]
lea ebx, [ecx + eax*4]
add ebx, 4
add ebx, dword [ecx + eax*4 + 4]
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x6c], ecx
mov ecx, dword [ebp - 0x2c]
xor edi, eax
xor esi, ecx
mov eax, dword [ebp - 0x88]
add edx, eax
cmp edx, dword [ebp - 0x54]
jge 0x5aeba1
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x28], esi
mov esi, eax
mov eax, dword [ebp - 0x8c]
lea ecx, [eax + edx]
mov dword [ebp - 0x2c], ebx
sub ebx, ecx
mov ecx, dword [ebp - 0x3c]
sbb ecx, 0
cmp ebx, esi
sbb ecx, dword [ebp - 0x90]
mov ecx, dword [eax + edx]
mov eax, dword [eax + edx + 4]
jl 0x5af1b0
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x2c]
jmp 0x5af21d
mov eax, dword [ebp - 0x44]
cmp dword [eax + 0x2f4], 0
je 0x5ae9e0
mov eax, dword [ebp - 0x44]
cmp dword [eax + 0x2f8], 0
je 0x5ae9e0
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 0x2fc]
mov dword [ebp - 0x10], 0xffffffff
call dword [0xb0836c]
mov dword [ebp - 0x10], 3
push 0
call ecx
call fcn.005ae220
jmp 0x5ae9e0
xor esi, esi
xor edi, edi
jmp 0x5aeba1
add esi, 0xc
mov dword [ebp - 0x10], 0xffffffff
call dword [0xb0836c]
mov dword [ebp - 0x10], 3
push esi
call ecx
cmp dword [0xb53288], 0
mov esi, dword [ebp - 0x24]
jne 0x5af335
mov ecx, esi
xor ecx, 0x5b3a8834
call fcn.0053d610
mov dword [eax], 0x799e1c
mov dword [eax + 0x1c], 0
mov esi, dword [ebp - 0x24]
mov ecx, esi
xor ecx, 0x5b3a88f3
mov dword [eax + 0x20], ecx
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0x799e70
mov dword [eax + 0x24], 0
mov dword [eax + 0x28], 0
mov dword [eax + 4], 0
mov dword [0xb53288], eax
mov eax, dword [0xb53288]
mov eax, dword [eax + 0x24]
add eax, dword [0xb52f9e]
mov dword [0xb46a3b], eax
mov eax, dword [ebp - 0x38]
test dword [0xb52b2b], eax
jne 0x5af37a
mov ecx, 0xf8
add ecx, dword [0xb53038]
mov dword [ebp - 0x28], ecx
call fcn.0053e0b0
in ax, 0x64
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x28]
call fcn.0053dfb0
mov esi, dword [ebp - 0x24]
mov eax, dword [0xb46a2b]
mov ecx, eax
not ecx
mov edx, esi
xor edx, 0x64c57703
and edx, ecx
xor eax, esi
xor eax, 0x9b3a88fc
or eax, edx
xor eax, 0x24c57703
cmp esi, eax
jne 0x5af3c1
push dword [ebp - 0x9c]
push dword [ebp - 0x94]
call sub.KERNEL32.dll_SetThreadPriority
push dword [ebp - 0xa0]
push dword [ebp - 0x98]
call sub.KERNEL32.dll_SetPriorityClass
mov eax, dword [ebp - 0x20]
mov byte [eax + 0x4d8], 0
or byte [0xb46a17], 1
mov edi, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x50]
test esi, esi
je 0x5af3ed
mov ecx, esi
call fcn.0051c760
mov ecx, esi
call fcn.0053d620
cmp byte [ebp - 0x31], 0
je 0x5af3fb
mov ebx, dword [0xb46a3b]
xor edi, edi
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, ebx
mov edx, edi
add esp, 0x4cc
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [0xb52b2b]
mov edx, ecx
not edx
mov esi, ebx
xor esi, 0xa4c57783
and esi, edx
xor ecx, ebx
xor ecx, 0x5b3a887c
or ecx, esi
cmp ecx, 0xffffffff
je 0x5af443
push dword [ebp + 0xc]
call fcn.005ad9c0
add esp, 4
jmp 0x5af3f3
mov ecx, ebx
xor ecx, 0x5b3a88f8
or eax, ecx
mov dword [0xb46a17], eax
mov esi, dword [0xb46a3b]
xor ebx, 0x5b3a88e0
lea eax, [ebp - 0x4d8]
push ebx
push eax
call fcn.005b0d00
mov edi, dword [ebp - 0x4d4]
mov ecx, esi
call dword [0xb0836c]
mov ebx, dword [ebp + 0xc]
push ebx
push 0
push edi
call esi
push ebx
call fcn.005ad9c0
add esp, 4
xor ebx, ebx
jmp 0x5af3f9
mov dword [ebp - 0x10], 1
call fcn.00748ef1
mov dword [ebp - 0x10], 2
call fcn.00748ef1
nop word [eax + eax]
push ebp
sub esp, 0x10
add ebp, 0xc
mov ecx, dword [ebp - 0x2c]
call fcn.0053d620
add esp, 0x10
pop ebp
ret