Function at 0x86cdac
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xfc
and dword [esp + 0x64], 0
push ebx
mov ebx, ecx
mov dword [esp + 0x54], 1
push esi
push edi
mov esi, edx
mov dword [esp + 0x64], ebx
mov edi, dword [ebx]
mov dword [esp + 0x60], esi
mov dword [esp + 0x3c], edi
call fcn.00869fa5
mov dword [esp + 0x18], eax
test esi, esi
je 0x86dfec
cmp byte [edi + 0x49], 0
jne 0x86dfec
xor eax, eax
cmp dword [ebx + 0x24], eax
jne 0x86dfec
push eax
push eax
push eax
push 0x15
pop edx
mov ecx, ebx
call fcn.0085944e
add esp, 0xc
test eax, eax
jne 0x86dfec
push 0x30
push eax
lea eax, [esp + 0x80]
push eax
call fcn.008856c0
mov eax, dword [ebp + 8]
add esp, 0xc
push 8
pop ecx
cmp byte [eax], cl
ja 0x86ce47
mov edx, dword [esi + 0x2c]
mov ecx, edi
call fcn.008539d0
and dword [esi + 0x2c], 0
and dword [esi + 8], 0xfffffffe
push 0
mov edx, esi
mov ecx, ebx
call fcn.0086c8f3
pop ecx
push 9
xor eax, eax
lea edi, [esp + 0xac]
cmp dword [ebx + 0x24], 0
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x1c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x24], edi
jne 0x86dfb4
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x49], 0
jne 0x86dfb4
mov eax, dword [esi + 8]
shr eax, 3
and eax, 1
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 8]
cmp byte [eax], 9
jne 0x86ceaf
mov edx, esi
mov ecx, ebx
call fcn.00869aa7
mov eax, dword [ebp + 8]
xor edx, edx
cmp dword [esi + 0x30], edx
jmp 0x86cfa8
cmp edx, dword [edi]
jge 0x86cfb2
imul eax, edx, 0x48
mov dword [esp + 0x28], eax
test byte [eax + edi + 0x2c], 8
mov ecx, dword [eax + edi + 0x1c]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + edi + 0x18]
mov dword [esp + 0x14], ecx
je 0x86cf1b
mov edx, dword [eax + edi + 0x34]
mov ecx, dword [esi + 0x20]
call fcn.00856cef
test eax, eax
je 0x86cf13
mov eax, dword [esp + 0x3c]
mov ecx, 0x2000
test word [eax + 0x44], cx
jne 0x86cf13
mov edx, dword [esp + 0x28]
and byte [edx + edi + 0x2c], 0xd7
mov edx, dword [edx + edi + 0x34]
mov ecx, dword [esi + 0x20]
call fcn.00868715
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x86cfa0
mov eax, dword [eax]
movsx ecx, word [ecx + 0x2a]
cmp ecx, dword [eax]
jne 0x86cfd9
mov eax, dword [esp + 0x30]
test byte [eax + 8], 8
jne 0x86cfa0
cmp dword [eax + 0x2c], 0
je 0x86cf59
test edx, edx
jne 0x86cf59
test dword [esi + 8], 0x40000
je 0x86cf59
cmp dword [edi], 1
je 0x86cfa0
test byte [edi + 0x74], 0xa
jne 0x86cfa0
push dword [esp + 0x50]
mov ecx, ebx
push edx
mov edx, esi
call fcn.0086b680
mov edx, dword [esp + 0x34]
test eax, eax
mov edi, dword [esi + 0x1c]
pop ecx
pop ecx
push 0xffffffffffffffff
pop eax
cmovne edx, eax
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x49], 0
jne 0x86dfb4
mov eax, dword [ebp + 8]
cmp byte [eax], 8
jbe 0x86cfa3
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0xa8], eax
mov eax, dword [ebp + 8]
inc edx
cmp dword [esi + 0x30], 0
mov dword [esp + 0x2c], edx
je 0x86ceb9
cmp dword [esi + 0x30], 0
je 0x86cfff
push eax
mov edx, esi
mov ecx, ebx
call fcn.0086a51a
cmp dword [esi + 0x34], 0
mov edi, eax
pop ecx
jne 0x86cfd2
mov ecx, ebx
call fcn.00844f22
mov eax, edi
jmp 0x86dfef
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx]
push dword [eax]
mov eax, dword [esp + 0x18]
push dword [eax]
movsx eax, word [eax + 0x2a]
push eax
push 0x4a6728
push ebx
call fcn.0082fc54
add esp, 0x14
jmp 0x86dfb4
xor ecx, ecx
mov dword [esp + 0x30], ecx
cmp dword [edi], ecx
jle 0x86d2e9
mov edi, dword [esp + 0x18]
imul eax, ecx, 0x48
mov ecx, dword [esp + 0x24]
add ecx, 8
add ecx, eax
mov dword [esp + 0x10], ecx
mov eax, dword [ecx + 0x38]
or eax, dword [ecx + 0x3c]
jne 0x86d045
push dword [ecx + 4]
push 0x49a1c0
push dword [ecx + 8]
mov ecx, ebx
push 0x14
pop edx
call fcn.0085944e
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x14], eax
test eax, eax
je 0x86d2d4
cmp dword [ecx + 0x18], 0
je 0x86d07b
test byte [ecx + 0x28], 0x10
jne 0x86d2d4
push dword [ecx + 0x18]
push dword [ecx + 0x1c]
mov ecx, edi
push 0xe
pop edx
call fcn.00844d77
pop ecx
pop ecx
jmp 0x86d2d4
mov ecx, esi
call fcn.00852ac8
add dword [ebx + 0x198], eax
mov ecx, 0x1000
mov eax, dword [esp + 0x3c]
test word [eax + 0x44], cx
jne 0x86d0ba
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
movzx eax, byte [ecx + 0x24]
shr eax, 5
and eax, 1
push eax
push dword [ecx + 0x2c]
mov ecx, ebx
push dword [esi + 0x20]
call fcn.0086baef
add esp, 0xc
cmp dword [esp + 0x30], 0
mov edx, dword [esp + 0x10]
mov eax, dword [ebx + 0x1b4]
mov dword [esp + 0x58], eax
mov eax, dword [edx + 8]
mov dword [ebx + 0x1b4], eax
jne 0x86d19e
mov eax, dword [esp + 0x24]
cmp dword [eax], 1
je 0x86d0ef
test byte [eax + 0x74], 0xa
je 0x86d19e
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.00845161
lea esi, [eax + 1]
mov eax, dword [ebx + 0x2c]
push esi
inc eax
push 0
push eax
mov dword [ebx + 0x2c], eax
mov dword [edx + 0x1c], eax
push 0xf
pop edx
call fcn.00844cf3
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0xd8]
add esp, 0xc
mov dword [eax + 0x18], esi
push dword [eax + 0x1c]
push 0xd
pop edx
call fcn.008683c5
add esp, 4
push dword [esp + 0x14]
push 0x4a6750
push 1
push ebx
call fcn.00844ece
mov edx, dword [esp + 0x24]
lea eax, [esp + 0xdc]
push eax
mov ecx, ebx
call fcn.0086cdac
mov edx, dword [esp + 0x24]
add esp, 0x14
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 0x10]
mov ax, word [eax + 6]
mov word [ecx + 0x2c], ax
mov ecx, edi
mov eax, dword [esp + 0xd4]
or dword [edx + 0x28], 0x10
mov dword [edx + 0x20], eax
mov edx, dword [edx + 0x1c]
call fcn.00844fa0
lea edx, [esi - 1]
mov ecx, edi
call fcn.00845298
mov ecx, ebx
call fcn.008571cd
mov esi, dword [esp + 0x60]
jmp 0x86d2ab
mov edi, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x34], eax
mov ecx, edi
mov eax, dword [ebx + 0x2c]
inc eax
push eax
push 0
mov dword [ebx + 0x2c], eax
mov dword [edx + 0x1c], eax
push 0x43
pop edx
call fcn.00844d77
pop ecx
pop ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x44], eax
inc eax
push 8
mov dword [ecx + 0x18], eax
pop eax
test byte [ecx + 0x28], al
jne 0x86d1e7
push 0x14
pop edx
mov ecx, edi
call fcn.00844d55
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x34], eax
mov edx, ecx
mov ecx, dword [esp + 0x24]
call fcn.0086cd44
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
test eax, eax
je 0x86d225
push dword [eax + 0x2c]
push dword [ecx + 0x2c]
mov ecx, edi
push 0x6c
pop edx
call fcn.00844d77
mov eax, dword [esp + 0x30]
pop ecx
pop ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
mov ax, word [eax + 6]
mov word [ecx + 6], ax
jmp 0x86d261
push dword [ecx + 0x2c]
lea ecx, [esp + 0xd0]
push 0xc
pop edx
call fcn.008683c5
add esp, 4
push dword [esp + 0x14]
push 0x4a6760
push 1
push ebx
call fcn.00844ece
mov edx, dword [esp + 0x24]
lea eax, [esp + 0xdc]
push eax
mov ecx, ebx
call fcn.0086cdac
add esp, 0x14
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x14]
mov ax, word [eax + 6]
mov word [ecx + 0x2c], ax
mov eax, dword [esp + 0x34]
test eax, eax
je 0x86d285
mov edx, eax
mov ecx, edi
call fcn.00845298
mov eax, dword [esp + 0x10]
mov ecx, edi
push dword [eax + 0x1c]
push 0x3f
pop edx
call fcn.00844d63
mov edx, dword [esp + 0x48]
pop ecx
push eax
mov ecx, edi
call fcn.00845250
pop ecx
mov ecx, ebx
call fcn.008571cd
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x49], 0
jne 0x86dfb4
mov ecx, esi
call fcn.00852ac8
sub dword [ebx + 0x198], eax
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x18]
mov dword [ebx + 0x1b4], eax
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, dword [eax]
jl 0x86d011
mov eax, dword [esi + 0x20]
xor ecx, ecx
mov edx, dword [esi]
inc ecx
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x54], eax
mov al, byte [esi + 8]
and al, cl
mov dword [esp + 0x14], edx
mov byte [esp + 0x23], al
mov byte [esp + 0xcc], al
mov eax, dword [esi + 8]
and al, 9
cmp al, cl
jne 0x86d352
or eax, 0xffffffff
mov ecx, edi
push eax
call fcn.00856b47
mov edx, dword [esp + 0x18]
pop ecx
test eax, eax
jne 0x86d352
mov ecx, dword [esp + 0x3c]
and dword [esi + 8], 0xfffffffe
push eax
call fcn.0085333a
mov edx, dword [esp + 0x18]
pop ecx
mov dword [esp + 0x10], eax
mov dword [esi + 0x24], eax
test edi, edi
je 0x86d39a
push dword [edx]
mov edx, edi
mov ecx, ebx
push 0
call fcn.0086953c
mov edx, dword [ebx + 0x28]
mov ecx, eax
push 0xfffffffffffffff7
push ecx
push 0
lea eax, [edx + 1]
mov dword [esp + 0xc4], edx
mov dword [ebx + 0x28], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov eax, dword [edi]
inc ecx
mov edi, dword [esp + 0x2c]
add eax, ecx
push eax
push edx
push 0x6e
pop edx
mov ecx, edi
call fcn.00844e3d
add esp, 0x1c
jmp 0x86d3a1
mov edi, dword [esp + 0x18]
or eax, 0xffffffff
mov dword [esp + 0xbc], eax
mov eax, dword [ebp + 8]
cmp byte [eax], 0xc
jne 0x86d3c5
mov ecx, dword [esp + 0x14]
push dword [ecx]
mov ecx, edi
push dword [eax + 4]
push 0x6e
pop edx
call fcn.00844d77
pop ecx
pop ecx
mov ecx, edi
call fcn.00844fbd
mov ecx, 0x4000
mov dword [esp + 0xe8], eax
test dword [esi + 8], ecx
jne 0x86d3e6
mov ecx, 0x140
mov word [esi + 6], cx
push eax
mov edx, esi
mov ecx, ebx
call fcn.00869fc5
cmp dword [esi + 0xc], 0
pop ecx
jne 0x86d416
mov eax, dword [esp + 0xbc]
test eax, eax
js 0x86d416
push 0x6f
mov edx, eax
mov ecx, edi
call fcn.00845241
or byte [esp + 0xc8], 1
pop ecx
test byte [esi + 8], 1
je 0x86d472
mov esi, dword [ebx + 0x28]
mov edx, dword [esp + 0x60]
push 0xfffffffffffffff7
push ecx
lea eax, [esi + 1]
mov dword [esp + 0xd8], esi
mov dword [ebx + 0x28], eax
mov ecx, ebx
mov edx, dword [edx]
push 0
push 0
call fcn.0086953c
add esp, 0xc
mov ecx, edi
push eax
push 0
push 0
push esi
push 0x6e
pop edx
call fcn.00844e3d
add esp, 0x14
mov dword [esp + 0xd4], eax
mov ecx, edi
push 8
pop eax
mov edx, eax
call fcn.00845280
mov esi, dword [esp + 0x60]
push 3
pop eax
jmp 0x86d474
xor al, al
cmp dword [esp + 0x50], 0
mov byte [esp + 0xcd], al
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x10]
jne 0x86d5a9
test eax, eax
jne 0x86d5a9
xor ecx, ecx
mov eax, 0x100
cmp byte [esp + 0x23], cl
mov edx, 0x4000
cmovne ecx, eax
mov ax, word [esi + 8]
and ax, dx
mov edx, dword [esp + 0x24]
or cx, ax
movsx eax, word [esi + 6]
push eax
movzx ecx, cx
push ecx
push dword [esi]
mov ecx, ebx
push dword [esp + 0x28]
push dword [esp + 0x50]
call fcn.00879734
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x54], ecx
test ecx, ecx
je 0x86dfb4
call fcn.00875959
cmp ax, word [esi + 6]
jge 0x86d4f1
mov word [esi + 6], ax
cmp byte [esp + 0x23], 0
je 0x86d51d
call fcn.0087595e
mov edx, dword [esp + 0x30]
mov ecx, eax
test ecx, ecx
movzx eax, cl
mov ecx, dword [esp + 0x54]
movzx edx, dl
cmovne edx, eax
mov dword [esp + 0x30], edx
mov byte [esp + 0xcd], dl
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x86d551
call fcn.00875963
mov edx, eax
mov dword [esp + 0xac], edx
call fcn.00875968
mov byte [esp + 0xc5], al
xor ecx, ecx
mov eax, dword [esp + 0x1c]
cmp edx, dword [eax]
cmove eax, ecx
mov dword [esp + 0xa8], eax
mov edx, dword [esp + 0xbc]
test edx, edx
js 0x86d567
test eax, eax
jne 0x86d567
mov ecx, edi
call fcn.008453e3
mov ecx, dword [esp + 0x54]
call fcn.00875971
push eax
call fcn.0087596d
push eax
mov eax, dword [ebp + 8]
mov edx, esi
push eax
lea eax, [esp + 0xd8]
mov ecx, ebx
push eax
lea eax, [esp + 0xb8]
push eax
or eax, 0xffffffff
push eax
call fcn.00868d91
mov ecx, dword [esp + 0x6c]
add esp, 0x18
call fcn.0087a027
jmp 0x86df44
and dword [esp + 0x4c], 0
and dword [esp + 0x28], 0
test eax, eax
je 0x86d5f8
mov edx, dword [esi]
mov ecx, dword [edx]
test ecx, ecx
jle 0x86d5d3
add edx, 0x1a
xor edi, edi
dec ecx
mov word [edx], di
lea edx, [edx + 0x18]
test ecx, ecx
jg 0x86d5c2
mov edi, dword [esp + 0x18]
mov ecx, dword [eax]
test ecx, ecx
jle 0x86d5ed
lea edx, [eax + 0x1a]
xor edi, edi
dec ecx
mov word [edx], di
lea edx, [edx + 0x18]
test ecx, ecx
jg 0x86d5dc
mov edi, dword [esp + 0x18]
push 0x42
pop ecx
cmp word [esi + 6], cx
jle 0x86d5fe
jmp 0x86d5fa
xor ecx, ecx
mov word [esi + 6], cx
mov edx, dword [esp + 0x1c]
mov ecx, eax
push 0xffffffffffffffff
call fcn.00856b47
pop ecx
xor ecx, ecx
test eax, eax
push 1
pop eax
cmove ecx, eax
mov dword [esp + 0x44], ecx
mov ecx, edi
call fcn.00844fbd
mov dword [esp + 0x2c], eax
lea edi, [esp + 0xec]
xor eax, eax
push 7
pop ecx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x78]
mov edi, dword [esp + 0x24]
mov dword [esp + 0xf4], eax
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [esp + 0xec], ebx
mov dword [esp + 0xf0], edi
mov dword [esp + 0x88], eax
test ecx, ecx
je 0x86d66e
mov eax, dword [ecx]
mov dword [esp + 0x84], eax
jmp 0x86d676
and dword [esp + 0x84], 0
mov edx, dword [esp + 0x14]
mov dword [esp + 0x90], ecx
lea ecx, [esp + 0xec]
call fcn.008570cd
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0xec]
call fcn.008570cd
mov eax, dword [esp + 0x54]
test eax, eax
je 0x86d6cf
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x86d6c1
mov edx, esi
mov ecx, ebx
call fcn.0086cd12
mov eax, dword [esi + 0x20]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x54]
mov edx, eax
lea ecx, [esp + 0xec]
call fcn.0085709f
cmp dword [esi + 0x24], 0
mov eax, dword [esp + 0x98]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xa4]
jne 0x86d71a
cmp dword [esi + 0x28], 0
jne 0x86d71a
cmp eax, 1
jne 0x86d71a
mov edx, dword [esp + 0xa0]
lea eax, [esp + 0x70]
mov ecx, dword [esp + 0x3c]
push eax
mov edx, dword [edx]
call fcn.0086bbf1
mov byte [esp + 0x3f], al
mov eax, dword [esp + 0xa8]
pop ecx
jmp 0x86d71f
mov byte [esp + 0x3b], 0
and dword [esp + 0x34], 0
test eax, eax
jle 0x86d78e
mov ax, word [esp + 0x104]
xor esi, esi
mov edi, dword [esp + 0x34]
push 8
pop ebx
or ax, bx
lea ecx, [esp + 0xec]
mov word [esp + 0x104], ax
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + esi]
mov edx, dword [edx + 0x14]
call fcn.008570cd
mov ax, word [esp + 0x104]
lea esi, [esi + 0x10]
mov ecx, 0xfff7
and ax, cx
inc edi
mov word [esp + 0x104], ax
cmp edi, dword [esp + 0xa4]
jl 0x86d739
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x24]
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x49], 0
jne 0x86dfb4
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x86dd4c
mov eax, dword [ebx + 0x28]
mov edx, ecx
push dword [esp + 0x98]
mov dword [esp + 0x80], eax
mov ecx, ebx
inc eax
push 0
mov dword [ebx + 0x28], eax
call fcn.0086953c
mov edi, dword [esp + 0x20]
mov ecx, edi
push 0xfffffffffffffff7
push eax
push 0
push dword [esp + 0x98]
mov dword [esp + 0xfc], eax
push dword [esp + 0x94]
push 0x6f
pop edx
call fcn.00844e3d
mov dword [esp + 0x90], eax
add esp, 0x1c
mov eax, dword [ebx + 0x2c]
mov ecx, edi
inc eax
mov dword [esp + 0x58], eax
inc eax
mov dword [esp + 0x1c], eax
inc eax
mov dword [ebx + 0x2c], eax
call fcn.00844fbd
inc dword [ebx + 0x2c]
mov ecx, edi
mov dword [esp + 0x64], eax
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x34], eax
call fcn.00844fbd
mov ecx, dword [ebx + 0x2c]
mov edx, dword [esp + 0x10]
push dword [esp + 0x1c]
mov dword [esp + 0x54], eax
lea eax, [ecx + 1]
add ecx, dword [edx]
mov dword [esp + 0x6c], eax
mov dword [ebx + 0x2c], ecx
push 0
lea eax, [ecx + 1]
mov dword [esp + 0x50], eax
mov eax, dword [edx]
add eax, ecx
mov ecx, edi
push 0x43
pop edx
mov dword [ebx + 0x2c], eax
call fcn.00844d77
push dword [esp + 0x60]
mov ecx, edi
push 0
push 0x43
pop edx
call fcn.00844d77
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x78]
dec eax
add eax, ecx
push eax
push ecx
push 0
push 0x46
pop edx
mov ecx, edi
call fcn.00844cf3
add esp, 0x1c
mov ecx, edi
push dword [esp + 0x50]
push dword [esp + 0x38]
push 0xe
pop edx
call fcn.00844d77
push 0
cmp dword [esp + 0x50], 0
mov ecx, 0x240
mov edx, dword [esp + 0x30]
push 0x40
pop eax
cmovne eax, ecx
mov ecx, ebx
movzx eax, ax
push eax
push 0
push dword [esp + 0x24]
push dword [esp + 0x58]
call fcn.00879734
mov edx, eax
add esp, 0x1c
mov dword [esp + 0x6c], edx
test edx, edx
je 0x86dfb4
mov ecx, edx
call fcn.00875963
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx]
jne 0x86d8fc
xor esi, esi
mov dword [esp + 0x5c], esi
jmp 0x86da94
cmp byte [esp + 0x23], 0
je 0x86d90e
test byte [esi + 8], 1
mov edx, 0x4a6774
je 0x86d913
mov edx, 0x4a6780
mov ecx, ebx
call fcn.008695e6
mov esi, dword [esp + 0x10]
mov dword [esp + 0x5c], 1
mov eax, dword [esi]
mov ecx, eax
mov dword [esp + 0x28], eax
mov edx, eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x4c], eax
test eax, eax
jle 0x86d961
mov eax, dword [esp + 0x94]
add eax, 0xc
cmp dword [eax], edx
jl 0x86d953
inc ecx
inc edx
add eax, 0x18
sub dword [esp + 0x4c], 1
jne 0x86d94d
mov dword [esp + 0x40], ecx
mov edx, ecx
mov ecx, ebx
call fcn.00857165
mov ecx, ebx
mov dword [esp + 0x24], eax
call fcn.008551d3
push 0
push 0
push dword [esp + 0x2c]
mov edx, esi
mov ecx, ebx
call fcn.008560fd
mov ecx, dword [esp + 0xa4]
xor eax, eax
add esp, 0xc
mov dword [esp + 0x4c], eax
test ecx, ecx
jle 0x86d9e5
mov edi, dword [esp + 0x28]
xor esi, esi
mov edx, dword [esp + 0x94]
cmp dword [edx + esi + 0xc], edi
jl 0x86d9d5
mov eax, dword [esp + 0x24]
mov ecx, ebx
add eax, edi
push eax
push dword [edx + esi + 4]
push dword [edx + esi + 8]
mov edx, dword [edx + esi]
call fcn.008551a1
mov ecx, dword [esp + 0xa4]
add esp, 0xc
mov eax, dword [esp + 0x4c]
inc edi
inc eax
add esi, 0x18
mov dword [esp + 0x4c], eax
cmp eax, ecx
jl 0x86d9a0
mov edi, dword [esp + 0x18]
mov ecx, ebx
call fcn.00857103
mov esi, eax
mov ecx, edi
push esi
push dword [esp + 0x44]
push dword [esp + 0x2c]
push 0x65
pop edx
call fcn.00844cf3
add esp, 0xc
mov edx, 0x80
mov ecx, edi
push esi
push dword [esp + 0x80]
call fcn.00844d77
mov edx, esi
mov ecx, ebx
call fcn.00857122
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x2c]
push esi
call fcn.0085719b
mov ecx, dword [esp + 0x78]
add esp, 0xc
call fcn.0087a027
mov edx, dword [ebx + 0x28]
mov ecx, ebx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x80], edx
lea eax, [edx + 1]
mov dword [ebx + 0x28], eax
call fcn.00857103
push esi
push eax
push edx
push 0x71
pop edx
mov ecx, edi
mov dword [esp + 0x34], eax
call fcn.00844cf3
add esp, 0xc
mov ecx, edi
push dword [esp + 0x2c]
push dword [esp + 0x80]
push 0x23
pop edx
call fcn.00844d77
pop ecx
pop ecx
mov ecx, ebx
mov byte [esp + 0x79], 1
call fcn.008551d3
mov edx, dword [esp + 0x6c]
xor esi, esi
inc esi
cmp dword [esp + 0x44], 0
je 0x86daca
mov eax, dword [esp + 0x3c]
test byte [eax + 0x44], 4
jne 0x86daca
test esi, esi
jne 0x86dab4
mov ecx, edx
call fcn.00878e97
test eax, eax
je 0x86daca
mov edx, dword [esp + 0xbc]
mov ecx, edi
and dword [esp + 0xa8], 0
call fcn.008453e3
mov ecx, edi
call fcn.00845161
mov ecx, ebx
mov dword [esp + 0x40], eax
call fcn.008551d3
test esi, esi
je 0x86dafc
push dword [esp + 0x4c]
mov ecx, edi
push dword [esp + 0x2c]
push dword [esp + 0x84]
push 0x7b
pop edx
call fcn.00844cf3
add esp, 0xc
mov esi, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x28], ecx
cmp dword [esi], ecx
jle 0x86db5a
lea edx, [esi + 4]
mov dword [esp + 0x44], edx
mov eax, dword [esp + 0x48]
add eax, ecx
cmp dword [esp + 0x5c], 0
push eax
je 0x86db33
push ecx
push dword [esp + 0x54]
mov ecx, edi
push 0x62
pop edx
call fcn.00844cf3
add esp, 0xc
jmp 0x86db42
mov byte [esp + 0x7c], 1
mov ecx, ebx
mov edx, dword [edx]
call fcn.0085600b
pop ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x44]
inc ecx
add edx, 0x18
mov dword [esp + 0x28], ecx
mov dword [esp + 0x44], edx
cmp ecx, dword [esi]
jl 0x86db11
mov ecx, dword [esp + 0xe4]
push 0xfffffffffffffff7
call fcn.00869533
push eax
push dword [esi]
mov ecx, edi
push dword [esp + 0x54]
push dword [esp + 0x78]
push 0x54
pop edx
call fcn.00844e3d
add esp, 0x14
mov ecx, edi
call fcn.00845161
mov esi, eax
lea eax, [esi + 1]
push eax
push 0
push eax
push 0x12
pop edx
call fcn.00844cf3
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x48]
mov ecx, ebx
push dword [eax]
push dword [esp + 0x6c]
call fcn.0085521d
push dword [esp + 0x6c]
mov eax, dword [esp + 0x28]
mov ecx, edi
inc eax
push eax
push 0xe
pop edx
call fcn.00844d77
push dword [esp + 0x3c]
mov ecx, edi
push dword [esp + 0x30]
push 0x30
pop edx
call fcn.00844d77
push dword [esp + 0x68]
mov ecx, edi
push dword [esp + 0x50]
push 0xe
pop edx
call fcn.00844d77
mov edx, esi
mov ecx, edi
call fcn.00845298
lea edx, [esp + 0x98]
mov ecx, ebx
call fcn.0086ca39
push dword [esp + 0x78]
mov ecx, edi
push 1
push 0x43
pop edx
call fcn.00844d77
add esp, 0x28
cmp dword [esp + 0x5c], 0
je 0x86dc32
push dword [esp + 0x40]
mov ecx, edi
push dword [esp + 0x80]
push 3
pop edx
call fcn.00844d77
pop ecx
pop ecx
jmp 0x86dc46
mov ecx, dword [esp + 0x6c]
call fcn.0087a027
mov edx, dword [esp + 0x74]
mov ecx, edi
call fcn.008453e3
mov esi, dword [esp + 0x1c]
mov ecx, edi
push dword [esp + 0x64]
lea eax, [esi + 1]
push eax
push 0xe
pop edx
call fcn.00844d77
mov edx, dword [esp + 0x34]
mov ecx, edi
call fcn.00844d8c
mov ecx, edi
call fcn.00845161
push esi
mov esi, dword [esp + 0x24]
mov edi, eax
push 1
push 0x43
pop edx
mov ecx, esi
call fcn.00844d77
mov eax, dword [esp + 0x2c]
mov ecx, esi
inc eax
push eax
push 0x3f
pop edx
call fcn.00844d63
mov edx, dword [esp + 0x78]
add esp, 0x14
mov ecx, esi
call fcn.00844fff
call fcn.00845161
mov esi, eax
lea eax, [esi + 2]
push eax
push dword [esp + 0x5c]
push 0x30
pop edx
call fcn.00844d77
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
inc eax
push eax
push 0x3f
pop edx
call fcn.00844d63
add esp, 0xc
lea edx, [esp + 0x78]
mov ecx, ebx
call fcn.0086c9e0
push 0x10
inc esi
push esi
push dword [esp + 0x5c]
push ebx
call fcn.008565b1
mov eax, dword [ebp + 8]
mov ecx, ebx
push edi
push esi
mov esi, dword [esp + 0x78]
mov edx, esi
push eax
lea eax, [esp + 0xe8]
push eax
lea eax, [esp + 0xc8]
push eax
or eax, 0xffffffff
push eax
call fcn.00868d91
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
inc eax
push eax
push 0x3f
pop edx
mov ecx, edi
call fcn.00844d63
mov edx, dword [esp + 0x7c]
add esp, 0x2c
mov ecx, edi
call fcn.00844fff
lea edx, [esp + 0x78]
mov ecx, ebx
call fcn.0086c948
push dword [esp + 0x34]
mov ecx, edi
push 0x3f
pop edx
call fcn.00844d63
pop ecx
jmp 0x86df39
lea edx, [esp + 0x78]
mov ecx, esi
call fcn.0086bc62
mov dword [esp + 0x58], eax
test eax, eax
je 0x86de88
mov ecx, dword [ebx]
mov edi, eax
mov edx, dword [edi + 0x48]
call fcn.00867d8e
mov ecx, eax
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x34], eax
mov edx, ecx
inc eax
mov dword [esp + 0x28], ecx
mov dword [ebx + 0x28], eax
mov ecx, ebx
xor eax, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x44], eax
call fcn.0085d442
push dword [edi]
mov edx, dword [esp + 0x2c]
mov ecx, ebx
push 0
push dword [edi + 0x1c]
call fcn.008594f7
add esp, 0xc
test byte [edi + 0x24], 0x20
je 0x86ddc4
mov ecx, edi
call fcn.00859f5b
mov ecx, eax
mov dword [esp + 0x48], ecx
jmp 0x86ddc8
mov ecx, dword [esp + 0x48]
mov eax, dword [edi + 8]
test eax, eax
je 0x86ddfc
test byte [eax + 0x38], 4
jne 0x86ddf1
movzx edx, word [eax + 0x30]
cmp dx, word [edi + 0x2e]
jge 0x86ddf1
cmp dword [eax + 0x24], 0
jne 0x86ddf1
test ecx, ecx
je 0x86ddef
cmp dx, word [ecx + 0x30]
jge 0x86ddf1
mov ecx, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x86ddcf
mov dword [esp + 0x48], ecx
test ecx, ecx
je 0x86de14
mov eax, dword [ecx + 0x2c]
mov edx, ecx
mov ecx, ebx
mov dword [esp + 0x44], eax
call fcn.0085d8e3
mov dword [esp + 0x50], eax
mov edi, dword [esp + 0x18]
mov ecx, edi
push 1
push dword [esp + 0x2c]
push dword [esp + 0x4c]
push dword [esp + 0x40]
push 0x6a
pop edx
call fcn.00844f6e
mov eax, dword [esp + 0x60]
add esp, 0x10
test eax, eax
je 0x86de4c
push 0xfffffffffffffff7
push eax
or eax, 0xffffffff
mov ecx, edi
mov edx, eax
call fcn.008454a2
pop ecx
pop ecx
mov eax, dword [esp + 0xa0]
mov ecx, edi
push dword [eax + 8]
push dword [esp + 0x38]
push 0x66
pop edx
call fcn.00844d77
push dword [esp + 0x3c]
mov ecx, edi
push 0x72
pop edx
call fcn.00844d63
mov eax, dword [esp + 0x54]
add esp, 0xc
mov edx, dword [esp + 0x58]
mov ecx, ebx
push eax
call fcn.0086cc2d
pop ecx
jmp 0x86df03
lea edx, [esp + 0x78]
mov ecx, ebx
call fcn.0086c948
mov al, byte [esp + 0x3b]
mov edx, edi
push 0
movzx eax, al
mov ecx, ebx
push eax
push 0
push dword [esp + 0x7c]
push dword [esp + 0x50]
call fcn.00879734
mov edi, eax
add esp, 0x14
mov dword [esp + 0x74], edi
test edi, edi
je 0x86dfb4
lea edx, [esp + 0x78]
mov ecx, ebx
call fcn.0086ca39
mov ecx, edi
call fcn.00875963
test eax, eax
jle 0x86deeb
call fcn.00875971
mov edi, dword [esp + 0x18]
mov edx, eax
mov ecx, edi
call fcn.00844d8c
jmp 0x86deef
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x74]
call fcn.0087a027
lea edx, [esp + 0x78]
mov ecx, ebx
call fcn.0086c9e0
and dword [esp + 0xa8], 0
push 0x10
push dword [esp + 0x30]
push dword [esp + 0x5c]
push ebx
call fcn.008565b1
mov eax, dword [esp + 0x3c]
mov edx, esi
push eax
push eax
mov eax, dword [ebp + 8]
mov ecx, ebx
push eax
push 0
or eax, 0xffffffff
push 0
push eax
call fcn.00868d91
add esp, 0x28
mov edx, dword [esp + 0x2c]
mov ecx, edi
call fcn.00844fff
cmp byte [esp + 0x30], 3
jne 0x86df57
mov edx, 0x4a6774
mov ecx, ebx
call fcn.008695e6
cmp dword [esp + 0xa8], 0
je 0x86df9a
cmp dword [esp + 0xac], 0
mov eax, 0x4a643c
mov edx, 0x4a678c
mov ecx, ebx
cmovle edx, eax
call fcn.008695e6
mov eax, dword [esp + 0x14]
mov edx, esi
push dword [ebp + 8]
mov ecx, ebx
push dword [eax]
lea eax, [esp + 0xb0]
push eax
call fcn.008695fa
add esp, 0xc
mov edx, dword [esp + 0xe8]
mov ecx, edi
call fcn.00844fff
xor eax, eax
cmp dword [ebx + 0x24], eax
setg al
mov dword [esp + 0x5c], eax
mov esi, dword [esp + 0x3c]
mov ecx, esi
mov edx, dword [esp + 0x70]
call fcn.008539d0
mov edx, dword [esp + 0x94]
mov ecx, esi
call fcn.0082d90a
mov edx, dword [esp + 0xa0]
mov ecx, esi
call fcn.0082d90a
mov ecx, ebx
call fcn.00844f22
mov eax, dword [esp + 0x5c]
jmp 0x86dfef
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret