Function at 0x88a484
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
push ebx
mov ebx, ecx
xor ecx, ecx
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0xc], ebx
mov eax, dword [ebx]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x10], ecx
push edi
mov edi, edx
test esi, esi
je 0x88ab3c
cmp dword [ebx + 0x1cc], ecx
jne 0x88ab3c
cmp dword [esi + 0x3c], ecx
jne 0x88ab3c
mov ecx, ebx
call fcn.0089471a
test eax, eax
jne 0x88ab3c
xor edx, edx
cmp dword [edi + 0x38], edx
jne 0x88ab3c
cmp dword [ebp + 0xc], 0xb
jne 0x88a4fd
cmp word [edi + 0x28], dx
jl 0x88a4f6
movzx eax, byte [edi + 0x30]
mov dword [ebp + 0xc], eax
cmp eax, 0xb
jne 0x88a4fd
mov dword [ebp + 0xc], 2
mov ecx, dword [esi + 0x1c]
xor eax, eax
inc eax
cmp dword [ecx], eax
jne 0x88ab3c
cmp dword [ecx + 0x1c], edx
jne 0x88ab3c
cmp dword [esi + 0x20], edx
jne 0x88ab3c
cmp dword [esi + 0x2c], edx
jne 0x88ab3c
cmp dword [esi + 0x24], edx
jne 0x88ab3c
cmp dword [esi + 0x38], edx
jne 0x88ab3c
cmp dword [esi + 0x30], edx
jne 0x88ab3c
test byte [esi + 8], al
jne 0x88ab3c
mov eax, dword [esi]
cmp dword [eax], 1
jne 0x88ab3c
mov eax, dword [eax + 4]
cmp byte [eax], 0x9e
jne 0x88ab3c
lea eax, [ecx + 8]
xor edx, edx
push eax
mov ecx, ebx
call fcn.0087fddc
mov esi, eax
mov dword [ebp - 0x18], esi
pop ecx
test esi, esi
je 0x88ab3c
cmp esi, edi
je 0x88ab3c
mov ecx, dword [edi + 0x24]
mov eax, dword [esi + 0x24]
shr ecx, 5
shr eax, 5
not ecx
not eax
xor ecx, eax
test cl, 1
jne 0x88ab3c
xor edx, edx
cmp dword [esi + 0x38], edx
jne 0x88ab3c
cmp dword [esi + 0xc], edx
jne 0x88ab3c
movzx ecx, word [edi + 0x2a]
cmp cx, word [esi + 0x2a]
jne 0x88ab3c
mov ax, word [edi + 0x28]
cmp ax, word [esi + 0x28]
jne 0x88ab3c
movsx eax, cx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x30], eax
test eax, eax
jle 0x88a6a5
mov edx, dword [edi + 4]
mov ebx, dword [esi + 4]
add edx, 4
mov dword [ebp - 0x14], edx
add ebx, 8
mov al, byte [edx + 9]
cmp al, byte [ebx + 5]
jne 0x88ab3c
push dword [ebx]
push dword [edx + 4]
call fcn.00856105
pop ecx
pop ecx
test eax, eax
jne 0x88ab3c
mov edx, dword [ebp - 0x14]
cmp byte [edx + 8], al
je 0x88a620
cmp byte [ebx + 4], al
je 0x88ab3c
mov eax, dword [ebp - 0x1c]
test eax, eax
jle 0x88a68f
mov eax, dword [ebx - 4]
xor ecx, ecx
test eax, eax
sete cl
xor eax, eax
cmp dword [edx], eax
sete al
cmp eax, ecx
jne 0x88ab3c
mov eax, dword [edx]
test eax, eax
je 0x88a68c
mov ecx, dword [ebx - 4]
mov eax, dword [eax + 8]
mov ecx, dword [ecx + 8]
mov dl, byte [eax]
cmp dl, byte [ecx]
mov byte [ebp + 0xb], dl
mov edx, dword [ebp - 0x14]
jne 0x88a67f
cmp byte [ebp + 0xb], 0
je 0x88a67b
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
mov byte [ebp + 0xb], dl
mov edx, dword [ebp - 0x14]
jne 0x88a67f
add eax, 2
add ecx, 2
cmp byte [ebp + 0xb], 0
jne 0x88a64f
xor eax, eax
jmp 0x88a684
sbb eax, eax
or eax, 1
test eax, eax
jne 0x88ab3c
mov eax, dword [ebp - 0x1c]
inc eax
add edx, 0x10
add ebx, 0x10
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], edx
cmp eax, dword [ebp - 0x30]
jl 0x88a5ef
mov ebx, dword [edi + 8]
jmp 0x88a6ec
cmp byte [ebx + 0x36], 0
mov eax, dword [ebp - 0x10]
push 1
pop ecx
cmovne eax, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 8]
mov dword [ebp + 8], eax
test eax, eax
je 0x88ab3c
mov esi, eax
mov edx, esi
mov ecx, ebx
call fcn.0088a3cb
test eax, eax
jne 0x88a6de
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x88a6ca
test esi, esi
mov esi, dword [ebp - 0x18]
je 0x88ab3c
mov ebx, dword [ebx + 0x14]
test ebx, ebx
jne 0x88a6aa
mov edx, dword [edi + 0x18]
test edx, edx
je 0x88a70a
mov ecx, dword [esi + 0x18]
push 0xffffffffffffffff
call fcn.0087cf47
pop ecx
test eax, eax
jne 0x88ab3c
mov eax, dword [ebp - 0x24]
test dword [eax + 0x1c], 0x4000
je 0x88a720
cmp dword [edi + 0x10], 0
jne 0x88ab3c
test byte [eax + 0x1c], 0x80
jne 0x88ab3c
mov edx, dword [esi + 0x48]
mov ecx, eax
call fcn.0088e18e
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x20], eax
call fcn.008903a5
mov edx, dword [ebp - 0x20]
mov ebx, eax
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x3c], ebx
call fcn.00883842
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 0x10]
push edi
mov eax, dword [ecx + 0x28]
mov dword [ebp - 4], eax
inc eax
mov dword [ebp - 8], eax
inc eax
mov dword [ecx + 0x28], eax
call fcn.008886aa
pop ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x30], eax
call fcn.0087d503
mov dword [ebp - 0x1c], eax
call fcn.0087d503
mov edx, dword [ebp - 8]
push 0x6b
push edi
push dword [ebp + 0x10]
mov dword [ebp - 0x14], eax
call fcn.0088842c
mov eax, dword [ebp - 0x24]
add esp, 0xc
test byte [eax + 0x18], 4
jne 0x88a7e6
xor ecx, ecx
cmp word [edi + 0x28], cx
jge 0x88a7a7
cmp dword [edi + 8], ecx
jne 0x88a7bb
cmp dword [ebp - 0x10], ecx
jne 0x88a7bb
mov eax, dword [ebp + 0xc]
xor edx, edx
inc edx
cmp eax, 2
je 0x88a7e9
cmp eax, edx
je 0x88a7e9
push ecx
push dword [ebp - 8]
mov ecx, ebx
push 0x25
pop edx
call fcn.0086b177
pop ecx
pop ecx
push 0xd
pop edx
mov ecx, ebx
mov esi, eax
call fcn.0086b155
mov edx, esi
mov dword [ebp - 0x38], eax
mov ecx, ebx
call fcn.0086b698
mov esi, dword [ebp - 0x18]
xor edx, edx
inc edx
test byte [esi + 0x24], 0x20
mov ecx, dword [ebp - 0xc]
jne 0x88a92a
mov edx, dword [ebp - 4]
push 0x6a
push esi
push dword [ebp - 0x20]
call fcn.0088842c
add esp, 0xc
xor eax, eax
mov ecx, ebx
push eax
push dword [ebp - 4]
push 0x25
pop edx
call fcn.0086b177
pop ecx
mov dword [ebp - 0x34], eax
xor eax, eax
pop ecx
mov ecx, ebx
cmp word [edi + 0x28], ax
jl 0x88a877
mov esi, dword [ebp - 0x14]
push esi
push dword [ebp - 4]
push 0x7d
pop edx
call fcn.0086b177
push esi
mov dword [ebp + 8], eax
mov ecx, ebx
xor eax, eax
push eax
push dword [ebp - 8]
push 0x20
pop edx
call fcn.0086b0f3
mov edx, dword [ebp + 0xc]
add esp, 0x14
mov ecx, dword [ebp - 0xc]
mov esi, eax
push edi
call fcn.00883a47
pop ecx
mov edx, esi
mov ecx, ebx
call fcn.0086b698
push dword [ebp - 0x14]
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0xc]
call fcn.0088881c
mov esi, dword [ebp - 0x18]
jmp 0x88a895
push dword [ebp - 0x14]
cmp dword [edi + 8], eax
jne 0x88a886
push dword [ebp - 8]
push 0x75
jmp 0x88a88b
push dword [ebp - 4]
push 0x7d
pop edx
call fcn.0086b177
mov dword [ebp + 8], eax
pop ecx
pop ecx
xor eax, eax
mov ecx, ebx
inc eax
push eax
push dword [ebp - 0x1c]
push dword [ebp - 4]
push 0x7c
pop edx
call fcn.0086b0f3
mov eax, dword [ebp - 0x24]
add esp, 0xc
test byte [eax + 0x18], 4
je 0x88a8cd
push dword [ebp - 8]
mov ecx, ebx
push 0x7f
pop edx
call fcn.0086b163
pop ecx
mov dword [ebp - 0x28], 0x39
jmp 0x88a8d4
mov dword [ebp - 0x28], 0x29
push 0xfffffffffffffffa
push edi
push dword [ebp - 0x14]
mov ecx, ebx
push dword [ebp - 0x1c]
push dword [ebp - 8]
push 0x76
pop edx
call fcn.0086b23d
mov edx, dword [ebp - 0x28]
add esp, 0x14
mov ecx, ebx
call fcn.0086b680
push dword [ebp + 8]
push dword [ebp - 4]
push 7
pop edx
call fcn.0086b177
xor eax, eax
mov ecx, ebx
push eax
push dword [ebp - 4]
push 0x72
pop edx
call fcn.0086b177
xor eax, eax
mov ecx, ebx
push eax
push dword [ebp - 8]
push 0x72
pop edx
call fcn.0086b177
add esp, 0x18
jmp 0x88a951
push dword [edi]
push edx
push dword [edi + 0x1c]
mov edx, dword [ebp + 0x10]
call fcn.0087f8f7
mov edx, dword [ebp - 0x20]
add esp, 0xc
mov ecx, dword [ebp - 0xc]
xor eax, eax
push dword [esi]
push eax
push dword [esi + 0x1c]
call fcn.0087f8f7
add esp, 0xc
mov eax, dword [edi + 8]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x88aae2
mov edi, dword [esi + 8]
xor eax, eax
mov byte [ebp + 0xb], al
test edi, edi
je 0x88a985
mov esi, dword [ebp - 0x10]
mov edx, edi
mov ecx, esi
call fcn.0088a3cb
test eax, eax
jne 0x88a982
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x88a96e
mov esi, dword [ebp - 0x18]
push dword [ebp - 0x20]
mov ecx, ebx
push dword [edi + 0x2c]
push dword [ebp - 4]
push 0x6a
pop edx
call fcn.0086b0f3
mov ecx, dword [ebp - 0xc]
add esp, 0xc
mov edx, edi
call fcn.0086b94f
push dword [ebp + 0x10]
mov eax, dword [ebp - 0x10]
mov ecx, ebx
push dword [eax + 0x2c]
push dword [ebp - 8]
push 0x6b
pop edx
call fcn.0086b0f3
mov edx, dword [ebp - 0x10]
add esp, 0xc
mov ecx, dword [ebp - 0xc]
call fcn.0086b94f
xor eax, eax
mov ecx, ebx
lea edx, [eax + 1]
call fcn.0086b680
xor eax, eax
push eax
push dword [ebp - 4]
push 0x25
pop edx
call fcn.0086b177
mov dword [ebp - 0x30], eax
mov ecx, ebx
xor eax, eax
inc eax
push eax
push dword [ebp - 0x1c]
push dword [ebp - 4]
push 0x7c
pop edx
call fcn.0086b0f3
mov eax, dword [ebp - 0x24]
add esp, 0x14
test byte [eax + 0x18], 4
je 0x88aa5c
movzx ecx, word [edi + 0x34]
xor eax, eax
mov dword [ebp - 0x2c], ecx
test ecx, ecx
je 0x88aa43
mov edi, dword [edi + 0x20]
mov esi, eax
mov ebx, ecx
push dword [edi]
push 0x49da38
call fcn.00856105
pop ecx
pop ecx
test eax, eax
jne 0x88aa34
inc esi
add edi, 4
cmp esi, ebx
jl 0x88aa1a
mov ebx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov edi, dword [ebp - 8]
cmp eax, ecx
jne 0x88aa5f
push edi
push 0x7f
pop edx
mov ecx, ebx
mov byte [ebp + 0xb], 0x10
call fcn.0086b163
pop ecx
jmp 0x88aa5f
mov edi, dword [ebp - 8]
test byte [esi + 0x24], 0x20
je 0x88aa75
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x38]
and al, 3
cmp al, 2
jne 0x88aa75
or byte [ebp + 0xb], 1
push dword [ebp - 0x1c]
mov edx, 0x81
mov ecx, ebx
push edi
call fcn.0086b177
mov al, byte [ebp + 0xb]
mov ecx, ebx
or al, 8
movzx edx, al
call fcn.0086b680
mov eax, dword [ebp - 0x30]
inc eax
push eax
push dword [ebp - 4]
push 7
pop edx
call fcn.0086b177
mov edx, dword [ebp - 0x30]
mov ecx, ebx
call fcn.0086b698
xor eax, eax
mov ecx, ebx
push eax
push dword [ebp - 4]
push 0x72
pop edx
call fcn.0086b177
xor eax, eax
mov ecx, ebx
push eax
push edi
push 0x72
pop edx
call fcn.0086b177
mov eax, dword [ebp - 0x10]
add esp, 0x20
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x88a95f
jmp 0x88aae5
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x88aaf5
mov edx, eax
mov ecx, ebx
call fcn.0086b698
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
call fcn.0087d522
mov edx, dword [ebp - 0x1c]
call fcn.0087d522
mov esi, dword [ebp - 0x38]
test esi, esi
je 0x88ab45
call fcn.008888fc
xor eax, eax
mov ecx, ebx
push eax
push eax
push 0x42
pop edx
call fcn.0086b177
mov edx, esi
mov ecx, ebx
call fcn.0086b698
xor eax, eax
mov ecx, ebx
push eax
push edi
push 0x72
pop edx
call fcn.0086b177
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
inc eax
jmp 0x88ab3e