Function at 0x86a742
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x4f8
push ebx
mov ebx, dword [esp + 0x504]
push ebp
mov ebp, dword [ebx]
mov eax, dword [ebp + 0x88]
mov edx, dword [ebp + 0x8c]
push esi
mov esi, dword [esp + 0x508]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 4]
push edi
mov edi, dword [eax]
mov eax, dword [esi + 0x98]
xor ecx, ecx
test eax, 0x4000000
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x10], 1
mov dword [esp + 0x1c], 0xffffffff
jne 0x86a7a2
mov ecx, dword [ebp + 0x190]
test eax, 0x400000
mov dword [esp + 0x20], ecx
jne 0x86a7dd
mov edx, dword [esp + 0x514]
push edx
push 0x640af8
call fcn.00926cd6
lea eax, [esp + 0xcc]
push eax
push 0
push edi
call fcn.00917942
push eax
push 0x640710
call fcn.00926cd6
add esp, 0x1c
mov edi, dword [esi + 0x98]
or edi, 0x20000
mov dword [esi + 0x98], edi
mov ecx, dword [ebx]
test byte [ecx + 0x1ec], 0x24
mov eax, edi
je 0x86a805
or eax, 8
mov dword [esi + 0x98], eax
xor eax, eax
mov ecx, 0x1c
lea edi, [esp + 0x48]
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0x120]
mov ecx, dword [esi + 0x78]
push esi
call fcn.00865ba2
add esp, 4
test eax, eax
mov dword [esp + 0x80], eax
je 0x86ab4a
mov edx, dword [ebp + 0x190]
mov ecx, dword [esi + 0x6c]
push 0x10
push 1
push 0
push edx
mov edx, dword [ebx + 0xdc]
push 0
push ecx
lea eax, [esi + 0x2b8]
push edx
push eax
call fcn.00845f42
add esp, 0x20
test eax, eax
jne 0x86ab4a
mov edi, dword [esp + 0x518]
test edi, edi
jne 0x86a8a7
mov eax, dword [esi + 0x2b4]
mov ecx, dword [esp + 0x20]
mov edx, dword [esi + 0x70]
and eax, 0x30
push eax
push 1
xor eax, eax
push eax
mov eax, dword [ebx + 0xdc]
push ecx
push 1
push edx
push eax
lea ecx, [ebx + 0x128]
push ecx
call fcn.00845f42
add esp, 0x20
test eax, eax
jne 0x86ab4a
mov edx, dword [esi + 0x78]
mov eax, dword [esp + 0x80]
imul edx, edx, 0x41c
mov ecx, dword [ebx + 0xe0]
add edx, eax
mov eax, dword [ebx + 0xdc]
or ecx, 0x10
test edi, edi
mov dword [esp + 0x84], edx
mov dword [ebx + 0xe0], ecx
mov dword [ebx + 0x1a8], eax
jne 0x86a99a
mov ecx, dword [esi + 0x2b0]
mov edx, dword [ebp + 0x1a4]
push edi
push ecx
push edi
push 6
push 0x5ff28c
push 0x5df350
lea eax, [esi + 0xa7]
push edx
push eax
call fcn.00844412
add esp, 0x14
push eax
call fcn.00844d82
mov edi, eax
add esp, 0x10
test edi, edi
mov dword [esp + 0x1c], edi
jge 0x86a93b
lea eax, [esi + 0xa7]
push eax
push 0x6406f0
push esi
call fcn.0077c6d2
add esp, 0xc
jmp 0x86ab4a
mov ecx, dword [ebx + 0xdc]
push 0x6406e0
xor eax, eax
push eax
mov eax, dword [esp + 0x28]
push eax
push 0
push 0
push ecx
push edi
push esi
call fcn.00864232
add esp, 0x20
test eax, eax
jne 0x86ab4a
test dword [esi + 0x98], 0x4000000
je 0x86a98b
mov edx, dword [ebp + 0x1ec]
and edx, 0xfffffffb
mov eax, edx
mov byte [ebp + 5], al
shr eax, 8
mov dword [ebp + 0x1ec], edx
mov byte [ebp + 4], al
or eax, 0xffffffff
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x4c], eax
mov dword [ebx + 0x1a8], edi
mov dword [ebx + 0xe4], 0x401
mov al, byte [esi + 0x98]
mov edx, dword [ebp + 0x204]
or edi, 0xffffffff
test al, 0x40
mov eax, dword [ebp + 0x1b0]
jne 0x86aa1d
push 2
push edx
push eax
call fcn.0084a8e2
mov ecx, dword [ebp + 0x110]
add esp, 0xc
xor eax, eax
test ecx, ecx
jbe 0x86a9ea
mov ecx, dword [ebp + 0x6c]
mov dword [ecx + eax*8], edi
mov dword [ecx + eax*8 + 4], edi
mov ecx, dword [ebp + 0x110]
inc eax
cmp eax, ecx
jb 0x86a9d5
mov cl, byte [ebp + 0x15]
xor eax, eax
test cl, cl
jbe 0x86aa06
mov edx, dword [ebp + 0x70]
mov dword [edx + eax*8], edi
mov dword [edx + eax*8 + 4], edi
movzx ecx, byte [ebp + 0x15]
inc eax
cmp eax, ecx
jb 0x86a9f3
mov edx, dword [ebx + 4]
mov eax, dword [ebp + 0xc0]
mov dword [edx + 0x18], eax
mov ecx, dword [ebp + 0xc4]
mov dword [edx + 0x1c], ecx
jmp 0x86aa45
push 3
push edx
push eax
call fcn.0084a8e2
add esp, 0xc
test eax, eax
jne 0x86ab4a
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
not ecx
not edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x74], ebx
mov ebx, ebp
lea ecx, [esp + 0x48]
mov dword [esp + 0x78], esi
call fcn.008662a2
mov eax, dword [esi + 0x338]
xor edi, edi
push edi
push 2
push edi
push edi
push eax
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x90], edi
call fcn.00847ac2
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
mov dword [esi + 0x2c0], eax
mov dword [esi + 0x2c4], edx
mov ecx, dword [ebp + 0x228]
add esp, 0x14
cmp ecx, 1
jne 0x86aab1
mov ecx, dword [ebp + 0xf4]
mov ebx, dword [ebp + 0xfc]
inc ecx
cmp ecx, ebx
ja 0x86aac4
mov ecx, ebx
jmp 0x86aac4
cmp ecx, 2
jne 0x86aabe
mov ecx, dword [ebp + 0xfc]
jmp 0x86aac4
mov ecx, dword [ebp + 0xf0]
test byte [esi + 0x98], 0x40
je 0x86aae0
mov ebx, dword [esp + 0x510]
mov ecx, dword [ebx + 4]
mov edx, dword [ecx]
inc edx
mov dword [esp + 0x60], edx
jmp 0x86aaf5
push edi
push ecx
push edx
push eax
call fcn.009248b2
mov ebx, dword [esp + 0x510]
inc eax
mov dword [esp + 0x60], eax
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 4]
test byte [esi + 0x98], 8
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edi
mov dword [esi + 0x64], edi
je 0x86ab16
mov byte [esi + 0xa6], 1
mov edx, dword [ebp + 0xf0]
add edx, 0x398
imul edx, dword [ebp + 0x110]
push 0x20
push edx
call fcn.008415b2
add esp, 8
cmp eax, edi
mov dword [esp + 0x18], eax
jne 0x86ab98
push 0x640adc
push esi
call fcn.0077c6d2
add esp, 8
mov ebx, dword [esp + 0x510]
mov edi, dword [esp + 0x50c]
mov eax, dword [ebp + 0x204]
mov esi, dword [ebp + 0x1b0]
push 1
push eax
push esi
call fcn.0084a8e2
add esp, 0xc
test eax, eax
je 0x86b2f0
call fcn.00844ef2
mov eax, dword [eax]
push eax
push 0x63f890
push edi
call fcn.0077c6d2
add esp, 0xc
mov eax, 1
jmp 0x86b307
mov dword [ebp + 0x40], edi
mov edx, dword [ebx + 4]
mov dword [edx + 4], edi
lea ecx, [esi + 0x568]
mov dword [esp + 0x34], ecx
mov ecx, dword [ebx + 4]
mov dword [ecx], edi
mov edx, dword [ebx + 4]
mov dword [edx + 8], edi
mov dword [edx + 0xc], edi
mov ecx, dword [ebp + 0x110]
xor ebx, ebx
cmp ecx, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], ebx
jbe 0x86ae95
mov dword [esp + 0x30], edi
jmp 0x86abe2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
imul eax, eax, 0x398
mov esi, dword [esp + 0x2c]
lea ebx, [eax + ecx]
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x330], esi
mov edx, dword [ebp + 0x180]
add eax, edx
mov dword [ebx + 0x354], eax
mov ecx, dword [eax + 0x18]
mov dword [ebx + 0x358], ecx
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.00924782
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
and eax, ecx
and edx, edi
or eax, edx
jne 0x86ac7a
mov edi, dword [esp + 0x34]
mov edx, dword [ebx + 0x354]
mov esi, dword [esp + 0x50c]
movzx ecx, word [edx]
mov edx, dword [ebp + 0x68]
mov eax, edi
sub eax, esi
shl ecx, 2
sub eax, 0x568
sar eax, 2
lea esi, [edx + eax*4]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x38], 0
jmp 0x86ae42
mov edi, dword [esp + 0x50c]
test dword [edi + 0x98], 0x400000
mov dword [esp + 0x38], 1
jne 0x86aca4
inc esi
push esi
push 0x640a68
call fcn.00926cd6
add esp, 8
mov ecx, dword [ebx + 0x354]
mov al, byte [ecx + 2]
test al, al
jns 0x86acc7
mov dword [ebx + 0x37c], 0x504450
mov dword [ebx + 0x380], 0x504940
jmp 0x86acdb
mov dword [ebx + 0x37c], 0x5043c0
mov dword [ebx + 0x380], 0x504570
mov ecx, dword [esp + 0x20]
mov dword [ebx + 0x378], 0x500f80
mov dword [ebx + 0x384], 0x49e250
mov edx, dword [edi + 0x2ac]
mov dword [ebx + 0x374], edx
lea eax, [esp + 0x48]
mov dword [ebx + 0x35c], eax
xor eax, eax
mov dword [ebx + 0x320], ecx
mov dword [ebx + 0x324], eax
mov byte [ebx + 0x351], 0
mov byte [ebx + 0x350], 0
mov edx, dword [ebp + 0x190]
mov dword [ebx + 0x314], eax
mov ecx, dword [ebx + 0x314]
mov eax, edx
mov dword [ebx + 0x310], edx
mov dword [ebx + 0x318], eax
mov dword [ebx + 0x31c], ecx
mov edx, dword [ebp + 0xf0]
imul edx, dword [esp + 0x14]
mov eax, dword [ebp + 0x110]
mov ecx, dword [esp + 0x18]
imul eax, eax, 0x398
add edx, ecx
lea ecx, [ebx + 0x364]
push ecx
add eax, edx
mov edx, dword [esp + 0x514]
push 0xffffffffffffffff
push edx
mov dword [ebx + 0x370], eax
call fcn.0085e192
add esp, 0xc
test eax, eax
je 0x86afa1
mov eax, dword [ebp + 0x1fc]
mov dword [ebx + 0x334], eax
mov eax, dword [ebx + 0x358]
cmp byte [eax], 0
je 0x86ae15
mov esi, 0x7f
mov edx, 0xff
movzx ecx, word [eax + 8]
mov edi, dword [ebx + 0x334]
add edi, ecx
mov dword [ebx + 0x334], edi
test byte [eax + 6], 1
mov ecx, edi
je 0x86ade0
cmp word [eax + 8], dx
sbb edi, edi
and edi, 0xfffffffe
add edi, 3
add edi, ecx
mov dword [ebx + 0x334], edi
xor ecx, ecx
test byte [eax + 6], 0x28
je 0x86adff
cmp word [eax + 8], si
mov edi, dword [ebx + 0x334]
sbb ecx, ecx
add ecx, 3
add edi, ecx
mov dword [ebx + 0x334], edi
test byte [eax + 6], 0x10
je 0x86ae0b
inc dword [ebx + 0x334]
mov cl, byte [eax + 0x18]
add eax, 0x18
test cl, cl
jne 0x86adb2
mov eax, dword [ebx + 0x354]
mov cl, byte [eax + 2]
test cl, cl
jns 0x86ae42
mov edx, dword [eax + 0x18]
mov eax, dword [edx + 0x14]
mov ecx, dword [eax + 0x50]
mov eax, dword [ebx + 0x334]
imul ecx, ecx, 0x1f
sub ecx, 0xfe
add eax, ecx
mov dword [ebx + 0x334], eax
mov edx, dword [ebx + 0x354]
movzx eax, word [edx]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x14]
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x38]
mov ecx, dword [ebp + 0x110]
add edi, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x30]
inc eax
add edx, 0x38
cmp eax, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
jb 0x86abe2
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x50c]
mov ebx, edi
xor edi, edi
cmp dword [esp + 0x518], edi
mov dword [esp + 0x68], ebx
sete cl
lea edx, [esp + 0x94]
mov byte [eax + 0x351], 1
mov byte [eax + 0x350], cl
push edx
mov dword [esp + 0x90], edi
call dword [fcn.005df100]
lea eax, [esp + 0xac]
push edi
push eax
call fcn.0084c192
add esp, 8
lea ecx, [esp + 0x94]
push ecx
call dword [fcn.005df07c]
push ebx
lea edx, [esp + 0xe0]
push edx
lea eax, [esi + 0x2b8]
push eax
call fcn.00845a92
lea eax, [esp + 0xc4]
push eax
call fcn.0084c302
push edi
call fcn.0088de02
mov eax, dword [esp + 0x7c]
add esp, 0x14
cmp eax, edi
mov dword [esp + 0x14], edi
jbe 0x86afce
mov ebx, dword [esp + 0x18]
jmp 0x86af32
mov eax, dword [esp + 0x50c]
lea esi, [eax + 0x2b8]
lea edi, [ebx + 8]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x74]
xor edx, edx
div dword [esp + 0x68]
push ebx
push 0x519b90
lea ecx, [esp + 0xc0]
push ecx
push ebx
mov dword [ebx + 0x33c], eax
call fcn.0084f7e2
add esp, 0x10
test eax, eax
je 0x86afac
mov esi, dword [esp + 0x50c]
push 0x640abc
push esi
call fcn.0077c6d2
lea eax, [esi + 0x2b8]
push eax
call fcn.00845242
add esp, 0xc
mov dword [esp + 0x8c], 1
jmp 0x86afb3
push 0x640aa8
push edi
jmp 0x86ab42
inc dword [esp + 0x90]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x68]
inc eax
add ebx, 0x398
cmp eax, ecx
mov dword [esp + 0x14], eax
jb 0x86af32
lea edx, [esp + 0xb8]
push edx
call fcn.00843c32
mov eax, dword [esp + 0x94]
add esp, 4
test eax, eax
je 0x86b015
jmp 0x86aff2
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0xb0]
push ecx
call fcn.0084c1e2
mov eax, dword [esp + 0x98]
add esp, 8
test eax, eax
jne 0x86aff2
lea edx, [esp + 0x94]
push edx
call dword [fcn.005df0b0]
mov esi, dword [esp + 0x18]
push esi
call fcn.0087ecf2
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
je 0x86b052
mov edi, dword [esp + 0x50c]
mov ebx, dword [esp + 0x510]
mov byte [edi + 0xa4], 1
jmp 0x86ab58
mov al, byte [esi + 0x350]
test al, al
mov dword [esp + 0x10], 1
je 0x86b127
lea eax, [esp + 0x48]
push 1
push eax
call fcn.00865c12
add esp, 8
test eax, eax
jne 0x86ab4a
mov ebx, dword [esp + 0x510]
lea ecx, [ebx + 0x128]
push ecx
call fcn.00845a02
add esp, 4
test eax, eax
jne 0x86ab51
mov edi, dword [esp + 0x50c]
test dword [edi + 0x98], 0x200000
je 0x86b0c5
mov eax, dword [ebx + 4]
mov edx, dword [eax]
mov ecx, dword [esp + 0x3c]
inc edx
cmp edx, ecx
jae 0x86b0c5
mov dword [eax], ecx
jmp 0x86ab58
mov ecx, dword [esi + 0x320]
mov eax, dword [ebx + 4]
mov dword [eax + 0x20], ecx
mov edx, dword [esi + 0x324]
mov dword [eax + 0x24], edx
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0x20]
mov dword [ebp + 0x38], ecx
mov edx, dword [eax + 0x24]
push 0
mov dword [ebp + 0x3c], edx
call fcn.00926391
mov dword [ebp + 0x94], eax
mov eax, dword [ebx + 0xdc]
push 0
push eax
call fcn.00844022
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0xdc], ecx
add esp, 0xc
mov dword [ebp + 0x228], edx
mov dword [ebp + 0x190], eax
jmp 0x86b14a
mov ebx, dword [esp + 0x510]
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x318]
mov edi, dword [esp + 0x50c]
mov dword [ecx + 0x20], edx
mov eax, dword [esi + 0x31c]
mov dword [ecx + 0x24], eax
mov eax, dword [esp + 0x518]
test eax, eax
je 0x86b1af
mov ecx, dword [ebx + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x54]
add eax, ecx
mov ecx, dword [esp + 0x44]
adc ecx, esi
xor esi, esi
cmp eax, edx
jne 0x86b179
cmp ecx, esi
je 0x86b1af
push 0x640620
push edi
call fcn.0077c6d2
push 0x6405fc
push edi
call fcn.0077c6d2
mov eax, dword [edi + 0x98]
add esp, 0x10
or eax, 0x100000
mov byte [edi + 0xa4], 1
mov dword [edi + 0x98], eax
jmp 0x86ab58
mov eax, dword [esp + 0x518]
test ah, 0x10
je 0x86b221
mov eax, dword [ebp + 0x1ec]
mov ecx, dword [ebx + 4]
mov esi, dword [ecx + 0x20]
and al, 4
neg al
sbb eax, eax
and eax, 7
cdq
add eax, esi
mov esi, dword [ecx + 0x24]
mov ecx, dword [esp + 0x48]
adc edx, esi
cmp eax, ecx
jne 0x86b1e6
cmp edx, dword [esp + 0x4c]
je 0x86b221
mov ecx, dword [ebx]
mov esi, dword [ecx + 0x130]
test esi, esi
jne 0x86b221
push 0
push 0
push edx
mov edx, dword [ebx + 0xdc]
push eax
push edx
call fcn.0084e7d2
add esp, 0x14
test eax, eax
je 0x86b221
call fcn.00844ef2
mov eax, dword [eax]
push eax
push 0x640a3c
push edi
call fcn.0077c732
add esp, 0xc
test byte [edi + 0x98], 8
je 0x86b233
mov ecx, dword [edi + 0x64]
mov dword [ebp + 0x90], ecx
mov edx, dword [ebx + 4]
mov eax, dword [edx + 0x1c]
mov ecx, dword [edx + 0x18]
mov edx, dword [ebp + 0x204]
push 0
push 0
push eax
push ecx
push edx
call fcn.0084e7d2
add esp, 0x14
test eax, eax
je 0x86b26b
call fcn.00844ef2
mov eax, dword [eax]
push eax
push 0x640670
push edi
call fcn.0077c732
add esp, 0xc
test dword [edi + 0x98], 0x400000
jne 0x86b2cc
mov ecx, dword [ebx + 4]
mov eax, dword [ecx]
cmp dword [esp + 0x3c], eax
je 0x86b2a0
lea edx, [esp + 0xc4]
push edx
push 0
push eax
call fcn.00917942
push eax
push 0x640710
call fcn.00926cd6
add esp, 0x14
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov edx, eax
or edx, ecx
je 0x86b2cc
lea edx, [esp + 0xc4]
push edx
push ecx
push eax
call fcn.00917942
push eax
push 0x6405dc
push edi
call fcn.0077c732
add esp, 0x18
mov esi, dword [ebx + 4]
lea eax, [ebp + 0x18]
cmp eax, esi
mov dword [esp + 0x10], 0
je 0x86ab58
mov ecx, 0xa
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x86ab51
mov al, byte [edi + 0xa1]
test al, al
jne 0x86b305
push 1
push esi
call fcn.00849bc2
add esp, 8
xor eax, eax
mov esi, dword [esp + 0x10]
lea ecx, [ebx + 0x128]
or esi, eax
push ecx
mov dword [esp + 0x14], esi
call fcn.00845a02
add esp, 4
test esi, esi
jne 0x86b3ce
mov eax, dword [esp + 0x1c]
test eax, eax
jl 0x86b43a
mov edx, eax
push esi
push edx
call fcn.00844022
push 0x26
or eax, 0xffffffff
push 0x5e2db8
mov dword [ebx + 0xdc], eax
mov esi, dword [edi + 0x98]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x1a4]
push 0x5df350
push eax
lea ecx, [esp + 0x120]
and esi, 4
push ecx
shl esi, 6
call fcn.00844412
add esp, 0x1c
or esi, 0x30
push esi
push 6
push 0x5ff28c
push 0x5df350
lea edx, [esp + 0x118]
push edx
lea eax, [esp + 0x31c]
push eax
call fcn.00844412
add esp, 0x14
push eax
lea ecx, [esp + 0x110]
push ecx
call fcn.00937de2
add esp, 0xc
test eax, eax
jne 0x86b3c6
push 0xffffffffffffffff
push ebp
push ebx
call fcn.0085fdf2
add esp, 0xc
test eax, eax
je 0x86b43a
mov dword [esp + 0x10], 1
mov eax, dword [edi + 0x84]
test eax, eax
jne 0x86b3ee
call fcn.00844ef2
mov edx, dword [eax]
push edx
push 0x640a24
push edi
call fcn.0077c6d2
add esp, 0xc
mov esi, dword [esp + 0x1c]
test esi, esi
jl 0x86b428
push 0
push esi
call fcn.00844022
mov eax, dword [ebp + 0x134]
push eax
lea ecx, [edi + 0xa7]
push ecx
call fcn.0084ee42
mov eax, dword [ebx + 0xdc]
add esp, 0x10
cmp eax, esi
jne 0x86b428
mov dword [ebx + 0xdc], 0xffffffff
mov eax, dword [ebx]
or byte [eax + 0xac], 6
or dword [ebx + 0xe4], 1
jmp 0x86b459
mov edx, dword [esp + 0x24]
cmp edx, dword [ebp + 0x88]
jne 0x86b459
mov eax, dword [esp + 0x28]
cmp eax, dword [ebp + 0x8c]
jne 0x86b459
and byte [ebp + 0xac], 0xef
mov al, byte [ebp + 0xac]
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0xac]
or al, 0x20
push ecx
mov byte [ebp + 0xac], al
call fcn.0084c1c2
add esp, 4
lea edx, [esp + 0x94]
push edx
call dword [fcn.005df0fc]
mov eax, dword [esp + 0x88]
push eax
call fcn.00841642
mov ecx, dword [esp + 0x84]
push ecx
call fcn.00841642
mov edx, dword [esp + 0x20]
push edx
call fcn.00841642
mov eax, dword [esp + 0x88]
push eax
call fcn.00841642
lea ecx, [edi + 0x2b8]
push ecx
call fcn.00845a02
mov ecx, dword [ebx + 0xe0]
and ecx, 0xffffffed
add esp, 0x14
test esi, esi
mov dword [ebx + 0xe0], ecx
jne 0x86b4f2
test dword [edi + 0x98], 0x4000000
je 0x86b4f2
and byte [ebp + 4], 0xfb
mov dword [ebp + 0x190], esi
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x4f8
ret