Function at 0x86f552
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xa34
push ebx
push ebp
mov ebp, dword [esp + 0xa5c]
test ebp, ebp
push esi
push edi
mov dword [esp + 0x40], 0x202
jne 0x86f58d
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0x384]
lea ebp, [esp + 0x384]
rep stosd dword es:[edi], eax
mov dword [esp + 0xa64], ebp
mov eax, dword [esp + 0xa5c]
mov ecx, dword [esp + 0xa4c]
lea ebx, [ecx + eax]
cmp ebx, 0x40
mov dword [esp + 0x60], ebx
ja 0x870749
mov esi, dword [esp + 0xa54]
test esi, esi
je 0x870749
push 0x763160
call dword [fcn.005df07c]
xor eax, eax
mov ecx, 0xac
lea edi, [esp + 0xd4]
mov dword [esp + 0x44], eax
mov dword [esp + 0x14], eax
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0xa68]
and eax, 1
mov dword [esp + 0x2c], eax
je 0x86f603
mov eax, dword [ebp + 0x34]
test ah, 0x40
jne 0x86f5fc
and eax, 0x8075
jmp 0x86f5ff
and eax, 0x70
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
cmp dword [ebp + 0xc], eax
jbe 0x86f60e
mov dword [ebp + 0xc], eax
push 0x30
shl ebx, 6
push ebx
call fcn.008415b2
add esp, 8
test eax, eax
mov dword [esp + 0x58], eax
jne 0x86f636
call fcn.00844ef2
mov eax, dword [eax]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa34
ret
mov edx, dword [esp + 0xa58]
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x20], edi
xor ebp, ebp
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], esi
lea esp, [esp]
mov si, word [edx + 2]
mov eax, dword [esp + 0x24]
movzx ecx, si
add eax, ecx
mov dword [esp + 0x24], eax
movsx eax, word [edx]
test eax, eax
je 0x86f723
cmp eax, 9
je 0x86f723
inc edi
cmp eax, 4
jne 0x86f6c7
mov eax, dword [esp + 0x1ec]
inc eax
cmp ebx, 0x7fffffff
mov dword [esp + 0x1ec], eax
je 0x86f72d
cmp si, 0xc
jne 0x86f6b5
mov ebx, 0x7fffffff
jmp 0x86f72d
lea ecx, [ecx*8 - 0x40]
mov eax, 1
shl eax, cl
add ebx, eax
jmp 0x86f72d
cmp eax, 2
je 0x86f707
cmp eax, 1
je 0x86f707
cmp eax, 8
jne 0x86f6fb
mov esi, dword [esp + 0x1c]
mov ax, word [edx + 2]
inc esi
movzx ecx, ax
dec edi
inc ebx
cmp ax, 0x101
mov dword [esp + 0x1c], esi
lea ebp, [ecx + ebp - 2]
jbe 0x86f72d
inc dword [esp + 0x20]
add ebx, 2
jmp 0x86f72d
cmp eax, 3
je 0x86f72d
add dword [esp + 0x10], ecx
dec edi
jmp 0x86f72d
cmp ebx, 0x7fffffff
je 0x86f71c
xor eax, eax
cmp si, 0xff
seta al
inc eax
add ebx, eax
mov eax, dword [esp + 0x10]
inc eax
jmp 0x86f729
mov eax, dword [esp + 0x10]
add eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
add edx, 0x20
dec eax
mov dword [esp + 0x34], eax
jne 0x86f662
mov ecx, edi
and cl, 7
cmp cl, 1
mov dword [esp + 0x34], ebx
jne 0x86f77d
mov eax, dword [esp + 0xa58]
cmp edx, eax
je 0x86f77d
sub edx, 0x20
cmp word [edx], 3
jne 0x86f768
cmp word [edx + 2], 1
je 0x86f76e
cmp edx, eax
jne 0x86f758
jmp 0x86f77d
mov eax, dword [esp + 0x10]
dec edi
inc eax
mov word [edx], 0
mov dword [esp + 0x10], eax
test edi, edi
mov al, byte [esp + 0xa68]
jne 0x86f78c
test al, 2
je 0x86f799
mov edx, dword [esp + 0x14]
or edx, 1
mov dword [esp + 0x14], edx
jmp 0x86f79d
mov edx, dword [esp + 0x14]
test dl, 1
jne 0x86f7a9
and edx, 0xffffffdf
mov dword [esp + 0x14], edx
test dl, 5
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
jne 0x86f7ba
lea ecx, [ebp + ecx*2]
add esi, ecx
test al, 4
mov dword [esp + 0x10], esi
je 0x86f7d3
or edx, 0x10
mov dword [esp + 0x14], edx
mov dword [esp + 0x40], 0x602
test al, 8
jne 0x86f7dc
test dl, 0x20
je 0x86f7ec
mov ecx, dword [esp + 0x10]
or edx, 0x20
inc ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
test al, 0x40
je 0x86f7f7
or edx, 0x40
mov dword [esp + 0x14], edx
lea eax, [edi + 7]
shr eax, 3
cmp ebx, 0x7fffffff
mov dword [esp + 0x64], eax
je 0x86f824
mov edi, dword [esp + 0x24]
mov ecx, edx
and ecx, 0x22
sub cl, 0x22
neg cl
sbb ecx, ecx
inc ecx
add ecx, eax
add ecx, edi
add ebx, ecx
mov dword [esp + 0x34], ebx
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0xa64]
add ebp, eax
mov eax, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
mov esi, eax
or esi, ecx
mov dword [esp + 0x10], ebp
jne 0x86f8a6
mov esi, dword [esp + 0xa64]
mov ebp, dword [esi + 8]
test ebp, ebp
je 0x86f8a6
cmp ebx, 0x7fffffff
je 0x86f890
xor esi, esi
push esi
push ebp
push 0xffffffffffffffff
push 0xffffffffffffffff
xor edi, edi
call fcn.009248b2
cmp edx, edi
jb 0x86f88c
ja 0x86f870
cmp eax, ebx
jb 0x86f88c
push esi
push ebp
push edi
push ebx
call fcn.00924872
mov ecx, dword [esp + 0xa64]
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edx
xor ebp, ebp
mov esi, ecx
jmp 0x86f8d2
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0xa64]
or ecx, 0xffffffff
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], ecx
xor ebp, ebp
mov esi, eax
jmp 0x86f8d6
mov esi, dword [esp + 0xa64]
mov edi, dword [esi + 8]
xor ebp, ebp
cmp edi, ebp
jne 0x86f8d6
mov edi, dword [esp + 0x10]
and dl, 1
neg dl
push ebp
sbb edx, edx
and edx, 3
add edx, edi
push edx
push ecx
push eax
call fcn.009248b2
mov dword [esi + 8], eax
mov edx, dword [esp + 0x14]
mov ebx, edx
and ebx, 5
mov edx, dword [0x67ee24]
push edx
je 0x86f8ee
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
push eax
push ecx
jmp 0x86f8f3
mov eax, dword [esi + 8]
push ebp
push eax
call fcn.0086f4e2
mov esi, dword [esi + 8]
mov edi, eax
xor eax, eax
add esp, 0xc
mov dword [esp + 0x50], esi
or esi, eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x54], eax
jne 0x86f940
lea ecx, [edi*8]
mov eax, 1
xor edx, edx
call fcn.00924782
mov ecx, dword [esp + 0x10]
push ebp
add eax, 0xffffffff
push ecx
adc edx, 0xffffffff
push edx
push eax
call fcn.009248b2
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
cmp ebx, ebp
mov eax, dword [esp + 0x24]
mov dword [esp + 0x68], eax
jne 0x86f959
cmp eax, edi
ja 0x86f961
lea edx, [edi + 1]
mov dword [esp + 0x24], edx
jmp 0x86f961
add eax, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x13c], eax
cmp dword [esp + 0xa5c], ebp
lea ecx, [esp + 0x844]
lea edx, [esp + 0x3c4]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x140], ecx
mov dword [esp + 0x144], edx
je 0x86f9b9
mov eax, dword [0x67ee04]
add edi, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], edi
cmp dword [esp + 0xa4c], ebp
mov esi, dword [esp + 0xa50]
mov dword [esp + 0x18], ebp
jbe 0x86fcef
nop
mov ecx, dword [esp + 0x140]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x30]
mov dword [ecx + edx*8], 0xffffffff
mov eax, dword [esp + 0x140]
mov dword [eax + edx*8 + 4], 0xffffffff
mov ax, word [esi + 2]
xor edi, edi
xor ecx, ecx
test ah, 4
mov dword [esp + 0x38], edi
je 0x86fa5b
mov eax, dword [esp + 0x2c]
test eax, eax
mov word [esi + 2], 0x400
je 0x86fa1b
add word [esi], 0xfffd
mov di, word [esi]
mov eax, dword [esi + 0x18]
xor ecx, ecx
test di, di
jbe 0x86fa43
mov dl, byte [eax]
cmp dl, 2
je 0x86fa38
cmp dl, 0x10
jne 0x86febc
movzx edx, word [esi]
inc ecx
add eax, 0x18
cmp ecx, edx
jl 0x86fa28
add edi, 4
mov word [esi], di
add ebx, 0x20
mov ecx, 1
mov edi, 0x20
jmp 0x86fbef
test al, al
jns 0x86fab6
mov edi, dword [esp + 0x14]
mov eax, dword [esi + 0x18]
or edi, 2
xor ecx, ecx
cmp word [esi], cx
mov word [esi + 2], 0x8a
mov dword [esp + 0x14], edi
jbe 0x86fa95
mov dl, byte [eax]
cmp dl, 1
je 0x86fa8a
cmp dl, 0xf
jne 0x86febc
movzx edx, word [esi]
inc ecx
add eax, 0x18
cmp ecx, edx
jl 0x86fa7a
inc dword [esp + 0x5c]
add ebx, 0x102
mov ecx, 1
mov edi, 0xfe
mov dword [esp + 0x38], 0xdf
jmp 0x86fbef
test al, 2
je 0x86fb00
mov eax, dword [esi + 0x18]
test byte [eax + 6], 1
je 0x86facc
cmp byte [eax], 7
jne 0x86facc
and byte [eax + 6], 0xfe
mov eax, dword [esi + 0x18]
test byte [eax + 6], 0x29
jne 0x86fae9
xor eax, eax
mov ax, word [esi + 2]
and eax, 0xfffd
or eax, 0x28
mov word [esi + 2], ax
jmp 0x86fb00
mov ebp, 2
or word [eax + 6], bp
mov eax, dword [esp + 0x14]
or byte [esi + 2], 8
or eax, ebp
mov dword [esp + 0x14], eax
mov ax, word [esi + 2]
test al, 0x20
je 0x86fb0d
or dword [esp + 0x14], 2
test al, 0x10
je 0x86fb26
mov eax, dword [esp + 0xa64]
cmp byte [eax + 0x39], 0
je 0x86fb26
inc edx
mov dword [esp + 0x1e8], edx
cmp word [esi], 0
mov eax, dword [esi + 0x18]
mov dword [esp + 0x3c], 0
jbe 0x86fbef
lea esp, [esp]
movzx edx, byte [eax]
add edx, 0xfffffffd
cmp edx, 0xb
ja 0x86fb5f
movzx edx, byte [edx + 0x50c13c]
jmp dword [edx*4 + 0x50c134]
test byte [eax + 6], 1
je 0x86fb8b
mov ebp, dword [esp + 0x14]
or byte [esi + 2], 0xc
mov dx, word [eax + 8]
or ebp, 2
mov dword [esp + 0x14], ebp
movzx ebp, dx
inc ecx
add edi, ebp
cmp dx, 0xff
jb 0x86fb8b
add edi, 2
add ecx, 2
test byte [eax + 6], 0x28
je 0x86fbb7
mov edx, dword [esp + 0x14]
or byte [esi + 2], 8
or edx, 2
mov dword [esp + 0x14], edx
mov dx, word [eax + 8]
movzx ebp, dx
inc ecx
add edi, ebp
cmp dx, 0xff
jb 0x86fbb7
add edi, 2
add ecx, 2
movzx edx, word [eax + 8]
add ebx, edx
mov dl, byte [eax + 2]
test dl, dl
je 0x86fbd8
mov edx, dword [esp + 0x14]
or byte [eax + 6], 0x10
or edx, 2
inc ebx
or byte [esi + 2], 0x48
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x3c]
movzx ebp, word [esi]
inc edx
add eax, 0x18
cmp edx, ebp
mov dword [esp + 0x3c], edx
jb 0x86fb42
mov ax, word [esi]
mov ebp, dword [esp + 0x1c]
movzx edx, ax
add ebp, edx
cmp ax, 0x10
mov dword [esp + 0x1c], ebp
ja 0x86febc
mov al, byte [esi + 2]
and al, 0x41
cmp al, 1
jne 0x86fc25
test ebp, ebp
je 0x86fc25
mov edx, dword [esp + 0x13c]
mov dword [edx + ebp*4 - 4], 1
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x30]
add ecx, ebx
mov eax, ecx
sub eax, edx
add eax, ebp
mov ebp, dword [0x67ee04]
lea eax, [eax*4 + 0x1b]
xor edx, edx
div ebp
inc eax
imul eax, ebp
cmp ax, 0x4000
mov word [esi + 6], ax
ja 0x86febc
cmp ecx, 0x458
jae 0x86febc
mov edx, dword [esp + 0x28]
movzx eax, ax
cmp edx, eax
jae 0x86fc73
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
mov edx, ecx
sub edx, edi
cmp ecx, eax
mov word [esi + 0xa], bx
mov word [esi + 0xc], dx
mov word [esi + 0xe], cx
jbe 0x86fc8f
mov dword [esp + 0x20], ecx
movzx edi, word [esi + 6]
xor edx, edx
add ecx, ecx
lea eax, [edi - 5]
div ecx
mov edx, dword [esp + 0x54]
push 0
push eax
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.009248b2
mov ecx, eax
mov ebx, edx
mov eax, edi
cdq
push edx
push eax
push ebx
push ecx
call fcn.00924872
mov ebp, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0xa4c]
add ebp, eax
mov eax, dword [esp + 0x18]
adc ebx, edx
inc eax
add esi, 0x38
cmp eax, ecx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x18], eax
jb 0x86f9d2
xor ebp, ebp
mov eax, dword [esp + 0x28]
shr eax, 0xa
cmp eax, ebp
mov dword [esp + 0x38], eax
je 0x86fd18
lea esp, [esp]
dec eax
mov ecx, 0xffffffff
mov dword [esp + eax*8 + 0x3c4], ecx
mov dword [esp + eax*8 + 0x3c8], ecx
jne 0x86fd02
mov eax, dword [esp + 0xa5c]
mov edi, dword [esp + 0xa60]
xor ebx, ebx
cmp eax, ebp
mov dword [esp + 0x18], ebp
jbe 0x86fdcf
mov esi, dword [esp + 0xa4c]
shl esi, 3
lea esp, [esp]
mov al, byte [esp + 0xa4c]
mov ecx, dword [esp + 0x140]
mov dl, bl
add dl, al
movzx eax, word [edi]
mov byte [edi + 2], dl
mov edx, dword [esp + 0x18]
add edx, eax
mov dword [esi + ecx], 0xffffffff
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x140]
mov dword [esi + edx + 4], 0xffffffff
mov ebp, dword [0x67ee04]
lea ecx, [ecx + ecx + 8]
xor edx, edx
lea eax, [ebp - 5]
div ecx
mov ecx, dword [esp + 0x50]
push 0
push eax
mov eax, dword [esp + 0x5c]
push eax
push ecx
call fcn.009248b2
push 0
push ebp
push edx
push eax
call fcn.00924872
mov ecx, dword [esp + 0x48]
add ecx, eax
adc dword [esp + 0x4c], edx
mov eax, dword [esp + 0xa5c]
inc ebx
add esi, 8
add edi, 0xc
cmp ebx, eax
mov dword [esp + 0x48], ecx
jb 0x86fd42
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xa5c]
mov esi, dword [esp + 0x38]
add eax, edx
lea edx, [edx + ecx*2]
add edx, ecx
add esi, ecx
mov ecx, dword [esp + 0x18]
lea ebx, [eax + esi*2 + 0x2c]
mov dword [esp + 0x1c], eax
add eax, ecx
lea ecx, [eax + eax*8]
mov eax, dword [esp + 0xa54]
imul eax, eax, 7
shl ebx, 2
lea edx, [ebx + edx*4 + 0x64]
lea ecx, [edx + ecx*2]
push 4
lea edx, [esp + 0xd8]
add eax, ecx
push 0x67edf0
push edx
mov dword [esp + 0x48], eax
call fcn.009249d2
mov esi, dword [esp + 0xa70]
mov eax, dword [esi + 0x34]
mov ecx, dword [esp + 0x20]
and eax, 0x4000
add esp, 0xc
neg eax
sbb eax, eax
and eax, 0x4004
or eax, ecx
mov dword [esi + 0x34], eax
mov byte [esp + 0xd9], al
shr eax, 8
mov byte [esp + 0xd8], al
mov eax, dword [esp + 0x3c]
mov byte [esp + 0xdb], al
shr eax, 8
mov byte [esp + 0xda], al
mov al, byte [esi + 0x38]
mov byte [esp + 0xe1], bl
shr ebx, 8
test al, al
mov byte [esp + 0xdd], pe_nt_image_headers32
mov byte [esp + 0xdc], 0
mov byte [esp + 0xdf], 0x64
mov byte [esp + 0xde], 0
mov byte [esp + 0xe0], bl
je 0x86ff97
mov byte [esp + 0xe8], al
jmp 0x86ffa5
call fcn.00844ef2
mov dword [eax], 0x8c
mov ebp, dword [esp + 0x10]
push 0x763160
call dword [fcn.005df0b0]
call fcn.00844ef2
mov esi, dword [eax]
mov eax, dword [esp + 0x44]
dec eax
je 0x86ff34
dec eax
je 0x86fefd
dec eax
jne 0x86ff76
mov edx, dword [esp + 0x40]
push 0
push edx
call fcn.00844022
add esp, 8
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x86ff34
mov eax, dword [esp + 0xa48]
push 0
push 6
push 0x5e2db8
push 0x5df350
push eax
lea ecx, [esp + 0x458]
push ecx
call fcn.00844412
add esp, 0x14
push eax
call fcn.008497b2
add esp, 8
push 0
push ebp
call fcn.00844022
mov eax, dword [esp + 0x34]
add esp, 8
test eax, eax
jne 0x86ff76
mov edx, dword [esp + 0xa48]
push 0
push 6
push 0x5e2dc0
push 0x5df350
push edx
lea eax, [esp + 0x458]
push eax
call fcn.00844412
add esp, 0x14
push eax
call fcn.008497b2
add esp, 8
mov ecx, dword [esp + 0x58]
push ecx
call fcn.00841642
add esp, 4
call fcn.00844ef2
pop edi
mov dword [eax], esi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0xa34
ret
mov eax, dword [0x67eb20]
mov cl, byte [eax]
mov byte [esp + 0xe8], cl
mov dl, byte [esp + 0x38]
or eax, 0xffffffff
mov byte [esp + 0xe9], dl
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], eax
call dword [fcn.005df080]
mov dword [esp + 0x12c], eax
xor eax, eax
push eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], eax
call fcn.00926391
mov ecx, dword [esi + 0x14]
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x16c], eax
mov eax, dword [esi + 0x10]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x12c], ecx
mov ecx, dword [esp + 0x64]
imul eax, ecx
shl eax, 4
mov dword [esp + 0x1e0], edx
mov edx, eax
xor eax, eax
add esp, 4
add edx, edi
mov edi, dword [esi + 0x24]
adc eax, ebp
mov ebp, dword [esi + 0x20]
shrd edx, eax, 0xa
shr eax, 0xa
cmp edi, eax
mov dword [esp + 0x178], 0xffff
mov dword [esp + 0x2c0], ebx
jb 0x87005c
ja 0x870058
cmp ebp, edx
jbe 0x87005c
mov eax, edi
jmp 0x87005e
mov ebp, edx
mov edi, ebp
or edi, eax
mov edx, 3
je 0x8700ba
cmp eax, 0x100
jb 0x87007d
ja 0x870076
test ebp, ebp
jb 0x87007d
mov edx, 6
jmp 0x8700ba
cmp eax, 1
jb 0x87008f
ja 0x870088
test ebp, ebp
jb 0x87008f
mov edx, 5
jmp 0x8700ba
test eax, eax
ja 0x87009b
cmp ebp, 0x1000000
jb 0x8700a2
mov edx, 4
jmp 0x8700ba
test eax, eax
ja 0x8700ae
cmp ebp, 0x10000
jb 0x8700b5
mov edx, 3
jmp 0x8700ba
mov edx, 2
mov al, byte [esp + 0xa5c]
mov byte [esp + 0xe7], al
mov eax, dword [esp + 0x1c]
mov byte [esp + 0xe3], al
shr eax, 8
mov dword [esp + 0x1e0], edx
movzx edx, cl
mov byte [esp + 0xe2], al
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1e4], edx
mov dl, byte [esp + 0x5c]
mov byte [esp + 0xe5], al
shr eax, 8
mov byte [esp + 0xea], dl
mov byte [esp + 0xe4], al
mov eax, 1
xor edx, edx
mov byte [esp + 0xe6], cl
call fcn.00924782
mov ecx, dword [0x67ee04]
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x3c]
lea eax, [eax + ecx - 1]
dec ecx
mov dword [esp + 0x160], edx
mov edx, dword [esp + 0x20]
not ecx
and eax, ecx
add edx, 0xb
mov dword [esp + 0x104], eax
xor ecx, ecx
mov dword [esp + 0x194], eax
mov eax, dword [esi + 8]
and edx, 0xfffffff8
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x108], ecx
mov dword [esp + 0x198], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1f8], edx
mov edx, dword [esp + 0x68]
mov eax, ebx
shr eax, 5
mov dword [esp + 0x1f4], ecx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x1c0], edx
mov edx, dword [esp + 0x24]
and eax, 1
add eax, edx
test bl, 0x10
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1b8], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x1cc], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x1c8], edx
mov edx, dword [esp + 0xa54]
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x1d4], edx
mov dword [esp + 0x1d8], ecx
je 0x870205
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x1a0], edx
lea edx, [eax + 3]
mov ecx, 0x14
cmp edx, ecx
jae 0x870227
mov edx, dword [esp + 0x1ec]
test edx, edx
jne 0x870227
cmp eax, ecx
mov dword [esp + 0x1d0], eax
ja 0x87022e
mov dword [esp + 0x1d0], ecx
mov edi, dword [esp + 0x2c]
test edi, edi
jne 0x870246
push edi
call fcn.00926391
add esp, 4
mov dword [esp + 0x16c], eax
mov eax, dword [esi]
test eax, eax
je 0x870295
push 4
push 0x5e2dc0
push 0x5df350
push eax
lea eax, [esp + 0x454]
push eax
call fcn.00844412
mov ecx, dword [esp + 0xa5c]
push 4
push 0x5e2dc0
push 0x5df350
push ecx
lea edx, [esp + 0x668]
push edx
call fcn.00844412
add esp, 0x28
lea ebx, [esp + 0x644]
xor edi, edi
jmp 0x8702c9
mov eax, dword [esp + 0xa48]
add edi, 4
neg edi
sbb edi, edi
and edi, 0x20
push edi
push 0x5e2dc0
push 0x5df350
push eax
lea ecx, [esp + 0x454]
push ecx
call fcn.00844412
add esp, 0x14
xor ebx, ebx
mov edi, 0x100
lea edx, [esp + 0x444]
push edx
call fcn.0085e122
add esp, 4
test eax, eax
je 0x870303
mov esi, dword [esp + 0xa48]
push esi
call fcn.008494f2
add eax, esi
push eax
push 0
push 0x640b30
push 0
call fcn.00844822
add esp, 0x14
jmp 0x86fec7
or edi, 0x10
push edi
mov edi, dword [esp + 0x44]
push edi
push 0
lea eax, [esp + 0x450]
push eax
push ebx
call fcn.00849612
mov ebp, eax
add esp, 0x14
test ebp, ebp
mov dword [esp + 0x10], ebp
jl 0x86fecb
mov eax, dword [esp + 0x2c]
test eax, eax
mov dword [esp + 0x44], 1
jne 0x8703dc
mov esi, dword [esi + 4]
test esi, esi
push 4
push 0x5e2db8
push 0x5df350
je 0x870391
lea ecx, [esp + 0x450]
push esi
push ecx
call fcn.00844412
mov edx, dword [esp + 0xa5c]
push 4
push 0x5e2db8
push 0x5df350
push edx
lea eax, [esp + 0x668]
push eax
call fcn.00844412
add esp, 0x28
lea ecx, [esp + 0x644]
xor eax, eax
jmp 0x8703b0
mov ecx, dword [esp + 0xa54]
push ecx
lea edx, [esp + 0x454]
push edx
call fcn.00844412
add esp, 0x14
xor ecx, ecx
mov eax, 0x100
or eax, 0x10
push eax
push edi
push 0
lea eax, [esp + 0x450]
push eax
push ecx
call fcn.00849612
add esp, 0x14
test eax, eax
mov dword [esp + 0x40], eax
jl 0x86fec7
mov dword [esp + 0x44], 3
push 2
lea ecx, [esp + 0xd8]
push ecx
push ebp
call fcn.0085e4b2
add esp, 0xc
test eax, eax
jne 0x86fec7
lea edx, [esp + 0x194]
push edx
push ebp
call fcn.0085f362
add esp, 8
test eax, eax
jne 0x86fec7
mov edx, dword [esp + 0xa5c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1e4]
sub eax, edx
je 0x870532
mov ebp, dword [esp + 0xa50]
nop
mov ecx, dword [esp + 0x10]
xor esi, esi
mov si, word [ebp + 2]
push ebp
push ecx
shr esi, 8
and esi, 4
call fcn.0085fa32
add esp, 8
test eax, eax
jne 0x86fec7
movzx edx, word [ebp]
xor edi, edi
sub edx, esi
je 0x87048b
xor ebx, ebx
mov edi, edi
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x10]
add eax, ebx
push eax
push ecx
call fcn.0085fb72
add esp, 8
test eax, eax
jne 0x86fec7
movzx edx, word [ebp]
inc edi
sub edx, esi
add ebx, 0x18
cmp edi, edx
jb 0x870462
xor edi, edi
test esi, esi
jbe 0x87050c
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x84]
push ecx
lea eax, [edi*8]
push edx
mov byte [esp + 0x8c], 6
mov byte [esp + 0x8d], 7
mov byte [esp + 0x8e], 0
mov byte [esp + 0x8f], 0
mov byte [esp + 0x90], 0
mov word [esp + 0x94], 8
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], eax
mov word [esp + 0x92], 0x40
call fcn.0085fb72
add esp, 8
test eax, eax
jne 0x86fec7
inc edi
cmp edi, esi
jb 0x870495
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1e4]
mov esi, dword [esp + 0xa5c]
inc eax
sub ecx, esi
add ebp, 0x38
cmp eax, ecx
mov dword [esp + 0x18], eax
jb 0x870432
mov edx, esi
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x10]
lea eax, [edx*4]
sub esi, eax
xor eax, eax
mov ecx, 0xe
lea edi, [esp + 0x9c]
rep stosd dword es:[edi], eax
xor ecx, ecx
test edx, edx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x18], ecx
jbe 0x87061e
mov edi, dword [esp + 0x30]
add edi, 4
mov ebx, 1
mov dx, word [0x67ee04]
mov ax, di
mov word [esp + 0xa6], ax
mov word [esp + 0xaa], ax
mov word [esp + 0xa8], ax
lea eax, [esp + 0x9c]
push eax
mov dword [esp + 0x7c], esi
push ebp
mov word [esp + 0xa4], bx
mov word [esp + 0xa6], 0x100
mov word [esp + 0xaa], dx
mov byte [esp + 0x74], 9
mov word [esp + 0x7c], 4
add esi, 4
call fcn.0085fa32
add esp, 8
test eax, eax
jne 0x86fec7
lea ecx, [esp + 0x6c]
push ecx
push ebp
call fcn.0085fb72
add esp, 8
test eax, eax
jne 0x86fec7
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xa5c]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jb 0x870588
mov al, byte [esp + 0xe7]
test al, al
mov dword [esp + 0x18], 0
jbe 0x87068d
mov esi, dword [esp + 0xa60]
push esi
push ebp
call fcn.0085fcd2
add esp, 8
test eax, eax
jne 0x86fec7
xor ebx, ebx
cmp word [esi], bx
jbe 0x870675
xor edi, edi
mov edx, dword [esi + 4]
add edx, edi
push edx
push ebp
call fcn.0085fb72
add esp, 8
test eax, eax
jne 0x86fec7
movzx eax, word [esi]
inc ebx
add edi, 0x18
cmp ebx, eax
jb 0x870653
mov eax, dword [esp + 0x18]
movzx ecx, byte [esp + 0xe7]
inc eax
add esi, 0xc
cmp eax, ecx
mov dword [esp + 0x18], eax
jb 0x870638
mov eax, dword [esp + 0x1d4]
xor edi, edi
test eax, eax
jbe 0x8706c3
mov esi, dword [esp + 0xa58]
nop
push esi
push ebp
call fcn.0085fd42
add esp, 8
test eax, eax
jne 0x86fec7
mov eax, dword [esp + 0x1d4]
inc edi
add esi, 0x20
cmp edi, eax
jb 0x8706a2
mov edx, dword [esp + 0x194]
push 0
push 0
push 0
push edx
push ebp
call fcn.0084e7d2
add esp, 0x14
test eax, eax
jne 0x86fec7
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x870709
mov eax, dword [esp + 0x40]
push 0
push eax
mov dword [esp + 0x4c], 2
call fcn.00844022
add esp, 8
test eax, eax
jne 0x86fec7
push 0x763160
mov dword [esp + 0x48], 0
call dword [fcn.005df0b0]
push 0
push ebp
call fcn.00844022
add esp, 8
test eax, eax
jne 0x86fecb
mov ecx, dword [esp + 0x58]
push ecx
call fcn.00841642
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xa34
ret
call fcn.00844ef2
pop edi
pop esi
pop ebp
mov dword [eax], 0x8c
mov eax, 0x8c
pop ebx
add esp, 0xa34
ret