Function at 0x47ef14
Capabilities:
Terminate process

Disassembly:
in al, dx
push esi
mov dword [ebp - 4], 0
mov eax, dword [ebp - 4]
imul eax, eax, 2
add eax, dword [ebp + 8]
movzx eax, word [eax]
movzx eax, ax
test eax, eax
je 0x47ec19
mov eax, 1
add eax, dword [ebp - 4]
mov dword [ebp - 4], eax
jmp 0x47ebf9
mov eax, dword [ebp - 4]
leave
ret
push ebp
mov ebp, esp
sub esp, 0xac
mov dword [ebp - 0xa0], 0x49d2f8
mov dword [ebp - 0x9c], 0
mov dword [esp], 0
lea eax, [ebp - 0x9c]
mov dword [esp + 4], eax
call fcn.0047ee55
mov dword [ebp - 0x98], eax
add esp, 8
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x40]
mov dword [ebp - 0x90], eax
add esp, 0xfffffff8
mov eax, dword [ebp - 0x90]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.0047ee55
mov dword [ebp - 0x8c], eax
add esp, 8
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 4]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
test eax, eax
je 0x47f076
push eax
mov eax, dword [ebp - 0x84]
mov dword [esp], eax
call fcn.0047ebee
mov dword [ebp - 0x78], eax
add esp, 4
mov eax, dword [ebp - 0x78]
mov byte [ebp - 0xa4], al
movzx eax, byte [ebp - 0xa4]
movzx eax, al
mov edx, dword [ebp - 0x7c]
movzx edx, byte [edx]
movzx edx, dl
cmp eax, edx
je 0x47f024
movzx eax, byte [ebp - 0xa4]
movzx eax, al
mov edx, 1
add edx, dword [ebp - 0x7c]
movzx edx, byte [edx]
movzx edx, dl
cmp eax, edx
je 0x47f024
push eax
mov dword [esp], 0
mov eax, dword [sym.imp.kernel32.dll_ExitProcess]
call eax
push eax
mov eax, dword [ebp - 0x84]
mov dword [esp], eax
call fcn.0047eda5
mov dword [ebp - 0x4c], eax
add esp, 4
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x44], eax
mov eax, 4
add eax, dword [ebp - 0x7c]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x7c]
mov edx, dword [edx]
cmp eax, edx
je 0x47f076
mov eax, dword [ebp - 0x44]
mov edx, 4
add edx, dword [ebp - 0x7c]
mov edx, dword [edx]
cmp eax, edx
je 0x47f076
push eax
mov dword [esp], 0
mov eax, dword [sym.imp.kernel32.dll_ExitProcess]
call eax
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 4
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x60], eax
add esp, 0xfffffff8
mov dword [esp], 0
mov eax, dword [ebp - 0x60]
mov dword [esp + 4], eax
mov eax, dword [sym.imp.kernel32.dll_LocalAlloc]
call eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], 0
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x6c], 0
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x48]
cmp eax, edx
jae 0x47f12d
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x50]
add edx, dword [eax]
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x74]
mov dword [eax], edx
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp - 0x6c]
mov dword [ebp - 0x6c], eax
jmp 0x47f0e1
add esp, 0xfffffff8
mov eax, dword [ebp - 0x88]
mov dword [esp], eax
mov eax, dword [ebp - 0x74]
mov dword [esp + 4], eax
call fcn.0047ec80
mov dword [ebp - 0x38], eax
add esp, 8
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x47f2ac
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x54]
add esp, 0xfffffff0
mov edx, dword [ebp - 0x68]
mov dword [esp], edx
mov edx, dword [ebp - 0x30]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x2c]
mov dword [esp + 8], edx
lea edx, [ebp - 0x64]
mov dword [esp + 0xc], edx
call eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x94]
mov dword [ebp - 0x58], eax
mov eax, 4
add eax, dword [ebp - 0x58]
mov eax, dword [eax]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x6c], 8
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x20]
cmp eax, edx
jae 0x47f218
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0x50]
add edx, dword [eax]
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x68]
mov dword [eax], edx
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x6c]
mov dword [ebp - 0x6c], eax
jmp 0x47f1d8
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, 8
add edx, dword [ebp - 0x68]
mov dword [edx], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x54]
add esp, 0xfffffff0
mov edx, dword [ebp - 0x68]
mov dword [esp], edx
mov edx, dword [ebp - 0x14]
mov dword [esp + 4], edx
push esp
and al, 4
mov edx, dword [ebp - 0x64]
mov dword [esp + 8], edx
lea edx, [ebp - 0x64]
mov dword [esp + 0xc], edx
call eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x68]
mov edx, 0xc
add edx, dword [ebp - 0x68]
add eax, dword [edx]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0xc]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x68]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
push eax
mov edx, dword [ebp - 0x68]
mov dword [esp], edx
call eax
add esp, 4
push eax
mov dword [esp], 0
mov eax, dword [sym.imp.kernel32.dll_ExitProcess]
call eax
nop
nop
nop
and al, 0x33
je 0x47f24d
pushal
mov ecx, dword [esp + 8]
sub ecx, 5
shl ecx, 2
mov ebx, dword [esp]
xor eax, dword [ebx + ecx*4 + 0x64]
mov ecx, esi
shr ecx, 0x16
shl esi, 0xa
or ecx, esi
mov esi, ecx
mov ecx, edx
shr ecx, 5
shl edx, 0x1b
or ecx, edx
mov edx, ecx
xor esi, eax
mov ecx, dword [esp + 0x14]
shl ecx, 7
xor esi, ecx
xor edx, dword [esp + 0x14]
xor edx, eax
mov ecx, eax
shr ecx, 7
shl eax, 0x19
or ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0x14]
shr ecx, 1
mov ebx, dword [esp + 0x14]
shl ebx, 0x1f
or ecx, ebx
mov dword [esp + 0x14], ecx
xor eax, esi
mov ecx, edx
shl ecx, 3
xor eax, ecx
mov ecx, dword [esp + 0x14]
xor ecx, edx
xor ecx, esi
mov dword [esp + 0x14], ecx
mov ecx, esi
shr ecx, 3
shl esi, 0x1d
or ecx, esi
mov esi, ecx
mov ecx, edx
shr ecx, 0xd
shl edx, 0x13
or ecx, edx
mov edx, ecx
mov ecx, dword [esp + 0x14]
xor ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
not ecx
mov dword [esp + 0x1c], ecx
mov ecx, esi
xor ecx, edx
mov dword [esp + 0x20], ecx
mov edi, dword [esp + 0x18]
xor edi, esi
mov esi, dword [esp + 0x14]
and esi, edi
mov ebx, dword [esp + 0x20]
xor ebx, esi
or edx, dword [esp + 0x1c]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x28]
xor edx, eax
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x20]
or edx, dword [esp + 0x2c]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x18]
xor edx, dword [esp + 0x30]
mov dword [esp + 0x10], edx
not edi
mov dword [esp + 0x38], edi
mov edx, dword [esp + 0x10]
or edx, ebx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x38]
xor edx, dword [esp + 0x3c]
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0x38]
and ecx, eax
mov eax, dword [esp + 0x20]
xor eax, dword [esp + 0x3c]
mov dword [esp + 0x44], eax
xor ecx, dword [esp + 0x44]
mov eax, dword [esp + 8]
sub eax, 6
shl eax, 2
mov edx, dword [esp]
xor ebx, dword [edx + eax*4 + 0x58]
mov eax, dword [esp + 8]
sub eax, 6
shl eax, 2
mov edx, dword [esp]
mov eax, dword [edx + eax*4 + 0x5c]
xor dword [esp + 0xc], eax
mov eax, dword [esp + 8]
sub eax, 6
shl eax, 2
mov edx, dword [esp]
xor ecx, dword [edx + eax*4 + 0x60]
mov eax, dword [esp + 8]
sub eax, 6
shl eax, 2
mov edx, dword [esp]
mov eax, dword [edx + eax*4 + 0x64]
xor dword [esp + 0x10], eax
mov eax, ecx
shr eax, 0x16
shl ecx, 0xa
or eax, ecx
mov ecx, eax
mov eax, ebx
shr eax, 5
shl ebx, 0x1b
or eax, ebx
mov ebx, eax
xor ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
shl eax, 7
xor ecx, eax
xor ebx, dword [esp + 0xc]
xor ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
shr eax, 7
mov edx, dword [esp + 0x10]
shl edx, 0x19
or eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
shr eax, 1
mov edx, dword [esp + 0xc]
shl edx, 0x1f
or eax, edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
xor eax, ecx
mov edx, ebx
shl edx, 3
xor eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
xor eax, ebx
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, ecx
shr eax, 3
shl ecx, 0x1d
or eax, ecx
mov ecx, eax
mov eax, ebx
shr eax, 0xd
shl ebx, 0x13
or eax, ebx
mov ebx, eax
mov eax, dword [esp + 0x10]
xor eax, ebx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
and eax, ebx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc]
xor eax, ecx
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x20]
xor edi, ebx
mov esi, dword [esp + 0xc]
or esi, dword [esp + 0x10]
mov eax, esi
xor eax, edi
mov edx, dword [esp + 0x18]
or edx, ecx
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0xc]
xor edx, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
and edi, dword [esp + 0x2c]
mov dword [esp + 0x30], edi
mov edx, dword [esp + 0x18]
xor edx, dword [esp + 0x30]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x1c]
not edx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x14]
and edx, eax
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x30]
xor edx, dword [esp + 0x38]
mov dword [esp + 0x40], edx
mov esi, dword [esp + 0x3c]
xor esi, dword [esp + 0x40]
and ebx, dword [esp + 0x10]
mov dword [esp + 0x44], ebx
xor ecx, dword [esp + 0x40]
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0x44]
xor edx, dword [esp + 0x48]
mov ecx, dword [esp + 8]
sub ecx, 7
shl ecx, 2
mov ebx, dword [esp]
xor edx, dword [ebx + ecx*4 + 0x58]
mov ecx, dword [esp + 8]
sub ecx, 7
shl ecx, 2
mov ebx, dword [esp]
mov ecx, dword [ebx + ecx*4 + 0x5c]
xor dword [esp + 0x14], ecx
mov ecx, dword [esp + 8]
sub ecx, 7
shl ecx, 2
mov ebx, dword [esp]
xor esi, dword [ebx + ecx*4 + 0x60]
mov ecx, dword [esp + 8]
sub ecx, 7
shl ecx, 2
mov ebx, dword [esp]
xor eax, dword [ebx + ecx*4 + 0x64]
mov ecx, esi
shr ecx, 0x16
shl esi, 0xa
or ecx, esi
mov esi, ecx
mov ecx, edx
shr ecx, 5
shl edx, 0x1b
or ecx, edx
mov edx, ecx
xor esi, eax
mov ecx, dword [esp + 0x14]
shl ecx, 7
xor esi, ecx
xor edx, dword [esp + 0x14]
xor edx, eax
mov ecx, eax
shr ecx, 7
shl eax, 0x19
or ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0x14]
shr ecx, 1
mov ebx, dword [esp + 0x14]
shl ebx, 0x1f
or ecx, ebx
mov dword [esp + 0x14], ecx
xor eax, esi
mov ecx, edx
shl ecx, 3
xor eax, ecx
mov ecx, dword [esp + 0x14]
xor ecx, edx
xor ecx, esi
mov dword [esp + 0x14], ecx
mov ecx, esi
shr ecx, 3
shl esi, 0x1d
or ecx, esi
mov esi, ecx
mov ecx, edx
shr ecx, 0xd
shl edx, 0x13
or ecx, edx
mov edx, ecx
mov ecx, eax
xor ecx, edx
mov dword [esp + 0x18], ecx
mov ecx, eax
xor ecx, esi
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
not ecx
mov dword [esp + 0x20], ecx
mov edi, dword [esp + 0x14]
or edi, edx
mov ecx, dword [esp + 0x20]
xor ecx, edi
mov ebx, dword [esp + 0x14]
xor ebx, dword [esp + 0x18]
mov dword [esp + 0x24], ebx
or esi, dword [esp + 0x24]
mov dword [esp + 0x28], esi
xor edx, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x1c]
and edx, dword [esp + 0x2c]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x24]
xor edx, dword [esp + 0x30]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x2c]
not edx
mov dword [esp + 0x38], edx
and eax, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xc]
or eax, dword [esp + 0x3c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x38]
xor eax, dword [esp + 0x40]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
xor eax, dword [esp + 0x3c]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc]
or eax, dword [esp + 0x10]
mov dword [esp + 0x48], eax
mov ebx, dword [esp + 0x44]
xor ebx, dword [esp + 0x48]
mov eax, dword [esp + 8]
sub eax, 8
shl eax, 2
mov edx, dword [esp]
xor ebx, dword [edx + eax*4 + 0x58]
mov eax, dword [esp + 8]
sub eax, 8
shl eax, 2
mov edx, dword [esp]
mov eax, dword [edx + eax*4 + 0x5c]
xor dword [esp + 0xc], eax
mov eax, dword [esp + 8]
sub eax, 8
shl eax, 2
mov edx, dword [esp]
xor ecx, dword [edx + eax*4 + 0x60]
mov eax, dword [esp + 8]
sub eax, 8
shl eax, 2
mov edx, dword [esp]
mov eax, dword [edx + eax*4 + 0x64]
xor dword [esp + 0x10], eax
sub dword [esp + 8], 8
cmp dword [esp + 8], 0
jg 0x47ebf0
mov eax, dword [esp + 4]
mov dword [eax], ebx
mov eax, dword [esp + 4]
add eax, 4
mov edx, dword [esp + 0xc]
mov dword [eax], edx
mov eax, dword [esp + 4]
add eax, 8
mov dword [eax], ecx
mov eax, dword [esp + 4]
add eax, 0xc
mov edx, dword [esp + 0x10]
mov dword [eax], edx
add esp, 0x4c
pop edi
pop esi
pop ebx
ret