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

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, edx
sub esp, 0xac
mov dword [esp + 0x20], eax
mov eax, dword [eax]
mov dword [esp + 0x14], edx
test eax, eax
mov dword [esp + 0x38], ecx
sete dl
test ebx, ebx
mov dword [esp + 0x74], 0
sete al
mov dword [esp + 0x78], 0
or dl, al
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
jne 0x8626f1
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
call fcn.0086ea19
mov eax, dword [eax]
mov dword [esp + 0x50], eax
call fcn.0086ea19
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], ecx
test ecx, ecx
je 0x860ff0
cmp byte [ecx], 0
mov eax, 0
cmovne eax, ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x14]
movzx eax, byte [eax]
test al, al
je 0x8625c2
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x10], 0
xor edi, edi
mov dword [esp + 0x18], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x3c], ebx
mov ebx, edi
test al, al
js 0x861171
mov eax, dword [esp + 0x14]
lea edi, [eax + 1]
movzx eax, byte [eax]
cmp al, 0x25
je 0x8611f1
movzx esi, al
mov dword [esp], esi
call fcn.0086ea41
test eax, eax
jne 0x861101
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call fcn.00860e71
mov ebx, eax
cmp eax, 0xffffffff
je 0x8623a5
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x8610a6
mov dword [esp], eax
call fcn.0086ea41
test eax, eax
jne 0x861521
cmp esi, ebx
je 0x8611d9
mov edi, ebx
mov dword [esp], 0
mov ecx, dword [esp + 0x24]
mov eax, edi
mov edx, dword [esp + 0x20]
call fcn.00860f01
jmp 0x8610d2
lea eax, [esp + 0x80]
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x74]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call fcn.00860de1
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 1
mov eax, dword [esp + 0x14]
movzx eax, byte [eax]
test al, al
jne 0x861043
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x8610d2
lea eax, [esp + 0x78]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov edi, eax
lea esi, [esi]
mov edx, edi
mov eax, esi
call fcn.00860e71
mov dword [esp], eax
mov ebx, eax
call fcn.0086ea41
test eax, eax
jne 0x861139
mov dword [esp], 0
mov ecx, dword [esp + 0x24]
mov eax, ebx
mov edx, dword [esp + 0x20]
call fcn.00860f01
jmp 0x8610d2
mov edi, dword [esp + 0x14]
mov dword [esp], edi
call fcn.0086e921
lea edx, [esp + 0x90]
mov dword [esp], edi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call fcn.0086ef01
test eax, eax
jle 0x86104b
lea ebp, [esp + 0x78]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x24], ebp
lea esi, [edi + eax]
mov eax, dword [esp + 0x20]
mov edx, ebp
call fcn.00860e71
mov ebx, eax
cmp eax, 0xffffffff
je 0x861f5c
movzx eax, byte [edi]
add edi, 1
cmp ebx, eax
jne 0x861f5c
cmp edi, esi
jne 0x8611ab
jmp 0x8611e1
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], edi
jmp 0x86110d
mov eax, dword [esp + 0x14]
mov dword [esp + 0x44], 0
movzx edx, byte [eax + 1]
mov eax, edx
sub edx, 0x30
cmp edx, 9
jbe 0x861e21
mov ecx, dword [esp + 0x34]
xor ebp, ebp
jmp 0x861244
cmp al, 0x27
je 0x861259
cmp al, 0x49
jne 0x861291
movzx eax, byte [edi + 1]
cmp al, 0x36
je 0x861271
or ebp, 4
cmp al, 0x33
je 0x861281
lea esi, [esi]
nop
add edi, 1
cmp al, 0x2a
jne 0x861221
movzx eax, byte [edi + 1]
or ebp, 0x80
jmp 0x861241
mov edx, ebp
movzx eax, byte [edi + 1]
or dh, 1
test ecx, ecx
cmovne ebp, edx
jmp 0x861241
cmp byte [edi + 2], 0x34
je 0x8612f9
or ebp, 4
jmp 0x861241
cmp byte [edi + 2], 0x32
jne 0x861241
movzx eax, byte [edi + 3]
add edi, 2
jmp 0x861241
movzx edx, al
mov dword [esp + 0x28], 0
lea ecx, [edx - 0x30]
cmp ecx, 9
ja 0x86243b
xor ecx, ecx
lea esi, [esi]
lea eax, [ecx + ecx*4]
add edi, 1
lea ecx, [edx + eax*2 - 0x30]
movzx edx, byte [edi]
lea esi, [edx - 0x30]
mov eax, edx
cmp esi, 9
jbe 0x8612b1
test ecx, ecx
mov edx, 0xffffffff
cmovne edx, ecx
mov dword [esp + 0x28], edx
test al, al
je 0x8610d2
sub eax, 0x4c
cmp al, 0x2e
ja 0x861515
movzx eax, al
jmp dword [eax*4 + 0xa13974]
movzx eax, byte [edi + 3]
or ebp, 0xc
add edi, 2
jmp 0x861241
mov eax, esi
test al, al
je 0x8610d2
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
add eax, 1
mov dword [esp + 0x14], eax
test ecx, ecx
jne 0x861e91
mov eax, esi
cmp al, 0x5b
jne 0x861581
mov esi, ebp
mov eax, ebp
and esi, 0x80
and eax, 4
mov dword [esp + 0x18], eax
jne 0x8622e1
test esi, esi
jne 0x8613f9
test ebp, 0x600
je 0x863389
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x863834
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x8634fb
mov dword [esp], 0x64
call fcn.0086ea09
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
mov dword [ebx], eax
test eax, eax
je 0x86233c
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x8613c7
mov edx, dword [ebx]
mov eax, ebx
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x8613e3
mov dword [esp], 0x88
call fcn.0086ea09
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x74], eax
mov dword [eax], ecx
mov dword [eax + edx*4 + 8], ebx
mov dword [esp + 0x48], 0x64
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + 1]
lea edx, [ebx + 2]
mov ebx, dword [esp + 0x28]
cmp al, 0x5e
mov eax, 0x7fffffff
cmovne edx, dword [esp + 0x14]
sete byte [esp + 0x44]
test ebx, ebx
cmovns eax, ebx
cmp dword [esp + 0x7c], 0xff
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x80]
ja 0x861463
mov dword [esp + 0x7c], 0x100
mov edx, 0x100
test eax, eax
je 0x861454
mov dword [esp], eax
call fcn.0086ea89
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
call fcn.0086ea09
mov dword [esp + 0x80], eax
lea edi, [eax + 4]
mov dword [eax], 0
mov dword [eax + 0xfc], 0
and edi, 0xfffffffc
sub eax, edi
lea ecx, [eax + 0x100]
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ebx, dword [esp + 0x14]
movzx eax, byte [ebx]
lea edx, [ebx + 1]
cmp al, 0x5d
je 0x8629f1
cmp al, 0x2d
je 0x8629f1
mov dword [esp + 0x14], edx
test al, al
je 0x8610d2
mov edx, dword [esp + 0x14]
jmp 0x8614d0
mov ecx, dword [esp + 0x80]
mov byte [ecx + eax], 1
movzx eax, byte [edx - 1]
test al, al
je 0x8610d2
cmp al, 0x5d
je 0x862af5
add edx, 1
cmp al, 0x2d
jne 0x8614b9
movzx ebx, byte [edx - 1]
cmp bl, 0x5d
je 0x8614b9
test bl, bl
je 0x8614b9
movzx ecx, byte [edx - 3]
cmp cl, bl
ja 0x8614b9
jae 0x8638d8
mov ebx, dword [esp + 0x80]
movzx eax, cl
add ecx, 1
mov byte [ebx + eax], 1
movzx eax, byte [edx - 1]
cmp al, cl
ja 0x8614fa
jmp 0x8614c8
mov dword [esp + 0x54], edi
movzx esi, byte [edi]
jmp 0x861316
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x14], esi
jmp 0x861541
mov dword [esp], eax
call fcn.0086ea41
test eax, eax
je 0x861f51
mov edx, ebx
mov eax, ebp
call fcn.00860e71
mov esi, eax
cmp eax, 0xffffffff
jne 0x861531
mov edi, eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x74]
test eax, eax
cmovne edi, eax
lea eax, [esp + 0x80]
mov dword [esp], eax
mov eax, edi
call fcn.00860de1
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
and eax, 0xffffffdf
cmp al, 0x43
je 0x861592
mov eax, esi
cmp al, 0x6e
jne 0x861e91
mov eax, esi
cmp al, 0x63
jne 0x861731
test ebp, 4
jne 0x861a7d
mov ebx, dword [esp + 0x28]
mov eax, 1
cmp ebx, 0xffffffff
cmovne eax, ebx
mov dword [esp + 0x28], eax
mov eax, ebp
and eax, 0x80
mov dword [esp + 0x18], eax
jne 0x862351
mov eax, ebp
and eax, 0x600
mov dword [esp + 0x4c], eax
je 0x862e91
mov esi, dword [esp + 0x44]
test esi, esi
jne 0x8635c7
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x8634fb
mov ebx, dword [esp + 0x28]
mov eax, 0x400
cmp ebx, 0x400
cmovle eax, ebx
mov dword [esp], eax
mov dword [esp + 0x48], eax
call fcn.0086ea09
mov edi, eax
mov eax, dword [esp + 0x2c]
mov dword [eax], edi
test edi, edi
je 0x86233c
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x861648
mov edx, dword [ebx]
mov eax, ebx
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x861664
mov dword [esp], 0x88
call fcn.0086ea09
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x74], eax
mov dword [eax], ecx
mov dword [eax + edx*4 + 8], ebx
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call fcn.00860e71
mov ebx, eax
cmp eax, 0xffffffff
je 0x863850
mov eax, edi
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x28]
jmp 0x8616cb
sub edi, 1
mov byte [eax], bl
lea esi, [eax + 1]
test edi, edi
jle 0x862d4a
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
call fcn.00860e71
mov ebx, eax
cmp eax, 0xffffffff
je 0x862d4a
mov eax, esi
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x28], ebp
test edx, edx
je 0x8616a1
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
lea esi, [edx + ebp]
cmp eax, esi
jne 0x8616a1
lea eax, [edi - 1]
cmp ebp, edi
lea ecx, [ebp + 1]
mov dword [esp + 0x28], edi
cmovl eax, ebp
mov edi, ebx
mov ebx, ecx
lea esi, [ebp + eax]
mov dword [esp + 4], esi
mov dword [esp], edx
call fcn.0086e9a1
test eax, eax
je 0x863b32
mov ecx, dword [esp + 0x2c]
mov ebx, edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x28], esi
mov dword [ecx], eax
add eax, ebp
mov ebp, esi
jmp 0x8616a1
cmp al, 0x73
jne 0x861891
mov eax, ebp
and eax, 4
mov dword [esp + 0x18], eax
jne 0x861ca7
mov esi, ebp
and esi, 0x80
jne 0x8617ef
test ebp, 0x600
je 0x862dbe
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x86346d
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x8634fb
mov dword [esp], 0x64
call fcn.0086ea09
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
mov dword [ebx], eax
test eax, eax
je 0x86233c
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x8617bd
mov edx, dword [ebx]
mov eax, ebx
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x8617d9
mov dword [esp], 0x88
call fcn.0086ea09
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x74], eax
mov dword [esp + 0x48], 0x64
mov dword [eax], ecx
mov dword [eax + edx*4 + 8], ebx
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call fcn.00860e71
mov ebx, eax
cmp eax, 0xffffffff
je 0x8623a5
mov edi, ebp
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x28]
and edi, 0x600
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x4c]
jmp 0x861868
mov ecx, dword [esp + 0x2c]
mov edi, eax
mov edx, dword [ecx]
mov ecx, dword [esp + 0x48]
add ecx, edx
cmp eax, ecx
je 0x862d77
test esi, esi
jle 0x861852
sub esi, 1
je 0x862742
mov eax, dword [esp + 0x20]
mov edx, ebp
call fcn.00860e71
mov ebx, eax
cmp eax, 0xffffffff
je 0x862742
mov dword [esp], ebx
call fcn.0086ea41
test eax, eax
jne 0x862ec1
mov ecx, dword [esp + 0x44]
test ecx, ecx
jne 0x861845
mov edx, dword [esp + 0x28]
mov byte [edi], bl
lea eax, [edi + 1]
test edx, edx
jne 0x86182f
mov edi, eax
jmp 0x861845
lea eax, [esi - 0x25]
cmp al, 0x53
ja 0x8610d2
movzx eax, al
jmp dword [eax*4 + 0xa13a30]
mov ebx, dword [esp + 0x28]
mov eax, 1
cmp ebx, 0xffffffff
cmovne eax, ebx
mov dword [esp + 0x28], eax
mov eax, ebp
and eax, 0x80
mov dword [esp + 0x18], eax
jne 0x861b46
test ebp, 0x600
je 0x8622b1
mov esi, dword [esp + 0x44]
test esi, esi
jne 0x862df1
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x8634fb
mov ebx, dword [esp + 0x28]
mov eax, 0x400
cmp ebx, 0x400
cmovle eax, ebx
mov dword [esp + 0x48], eax
add eax, eax
mov dword [esp], eax
call fcn.0086ea09
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x40], eax
mov dword [ebx], eax
test eax, eax
je 0x86233c
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x861b1c
mov edx, dword [ebx]
mov eax, ebx
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x861b38
mov dword [esp], 0x88
call fcn.0086ea09
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x74], eax
mov dword [eax], ecx
mov dword [eax + edx*4 + 8], ebx
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call fcn.00860e71
mov ebx, eax
cmp eax, 0xffffffff
je 0x8623a5
lea edi, [esp + 0x98]
and ebp, 0x600
mov esi, dword [esp + 0x20]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x54], ebp
xor ebp, ebp
mov eax, dword [esp + 0x18]
mov byte [esp + 0x8b], bl
test eax, eax
jne 0x861c41
mov eax, dword [esp + 0x54]
test eax, eax
je 0x861c41
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax]
lea edx, [ecx + ecx]
mov dword [esp + 0x58], eax
lea ecx, [eax + edx]
cmp dword [esp + 0x40], ecx
jne 0x861c41
mov eax, dword [esp + 0x28]
mov ecx, eax
sub ecx, 1
cmp dword [esp + 0x48], eax
cmovle ecx, dword [esp + 0x48]
mov eax, ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x48], edi
mov edi, esi
mov esi, ebx
mov ebx, edx
add eax, ecx
mov dword [esp + 0x24], eax
lea eax, [ecx + 1]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x24]
mov dword [esp], eax
add ecx, ecx
mov dword [esp + 4], ecx
call fcn.0086e9a1
test eax, eax
je 0x8638f0
mov ecx, dword [esp + 0x2c]
mov edx, ebx
mov ebx, esi
mov esi, edi
mov edi, dword [esp + 0x48]
mov dword [ecx], eax
add eax, edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x48], eax
lea esi, [esi]
mov eax, dword [esp + 0x18]
test eax, eax
mov eax, dword [esp + 0x40]
cmovne eax, ebp
mov dword [esp + 0x24], eax
mov eax, edi
mov edi, esi
mov esi, ebx
mov ebx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], 1
mov dword [esp + 0xc], eax
lea eax, [esp + 0x8b]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call fcn.0086ed61
cmp eax, 0xfffffffe
jne 0x862681
mov edx, ebx
mov eax, edi
call fcn.00860e71
mov esi, eax
cmp eax, 0xffffffff
je 0x861f41
mov byte [esp + 0x8b], al
jmp 0x861c5a
mov eax, ebp
and eax, 0x80
mov dword [esp + 0x18], eax
jne 0x861d51
test ebp, 0x600
je 0x862281
mov edi, dword [esp + 0x44]
test edi, edi
jne 0x862e29
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], ebx
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x8634fb
mov dword [esp], 0xc8
call fcn.0086ea09
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x40], eax
mov dword [ebx], eax
test eax, eax
je 0x86233c
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x861d1f
mov edx, dword [ebx]
mov eax, ebx
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x861d3b
mov dword [esp], 0x88
call fcn.0086ea09
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x74], eax
mov dword [esp + 0x48], 0x64
mov dword [eax], ecx
mov dword [eax + edx*4 + 8], ebx
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call fcn.00860e71
mov ebx, eax
cmp eax, 0xffffffff
je 0x8623a5
mov eax, ebp
mov dword [esp + 0x58], ebp
lea edi, [esp + 0x98]
mov ebp, dword [esp + 0x20]
and eax, 0x600
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x54], eax
mov dword [esp], ebx
call fcn.0086ea41
test eax, eax
jne 0x8636f5
mov edx, dword [esp + 0x18]
mov byte [esp + 0x8b], bl
test edx, edx
cmove eax, dword [esp + 0x40]
mov esi, eax
mov eax, edi
mov edi, ebx
mov ebx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], 1
mov dword [esp], esi
mov dword [esp + 0xc], eax
lea eax, [esp + 0x8b]
mov dword [esp + 4], eax
call fcn.0086ed61
cmp eax, 0xfffffffe
jne 0x8625d7
mov edx, ebx
mov eax, ebp
call fcn.00860e71
mov edi, eax
cmp eax, 0xffffffff
je 0x861f41
mov byte [esp + 0x8b], al
jmp 0x861dd1
mov esi, dword [esp + 0x14]
mov dword [esp + 0x44], edx
lea ecx, [esi + 2]
movzx esi, byte [esi + 2]
mov edx, esi
movzx edx, dl
lea ebp, [edx - 0x30]
cmp ebp, 9
ja 0x861e72
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x44]
mov ebp, eax
lea esi, [esi]
lea esi, [esi]
add ecx, 1
lea eax, [edi + edi*4]
lea edi, [edx + eax*2 - 0x30]
movzx edx, byte [ecx]
lea esi, [edx - 0x30]
cmp esi, 9
jbe 0x861e51
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x14]
mov esi, edx
mov eax, ebp
mov edx, esi
cmp dl, 0x24
je 0x862448
mov dword [esp + 0x44], 0
jmp 0x86120f
call fcn.0086eb69
mov edi, dword [eax]
call fcn.0086eb69
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x58], edi
mov edi, ebx
mov dword [eax], 0
jmp 0x861ec9
mov dword [esp], eax
call fcn.0086ea41
test eax, eax
je 0x862483
cmp edi, 0xffffffff
je 0x861ee2
lea ebx, [esp + 0x78]
mov eax, ebp
mov edx, ebx
call fcn.00860e71
mov edi, eax
cmp eax, 0xffffffff
jne 0x861eb9
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x58]
jmp 0x861f05
mov dword [esp], 0xffffffff
call fcn.0086ea41
test eax, eax
je 0x862454
call fcn.0086eb69
cmp dword [eax], 4
jne 0x861ef1
mov ebx, dword [esp + 0x30]
mov eax, 0xffffffff
test ebx, ebx
cmovne eax, ebx
mov ebx, eax
lea eax, [esp + 0x80]
mov ecx, dword [esp + 0x2c]
mov dword [esp], eax
lea edx, [esp + 0x74]
mov eax, ebx
call fcn.00860de1
jmp 0x8610ed
call fcn.0086eb69
mov dword [eax], 0x2a
jmp 0x8610d2
mov ebx, esi
mov esi, dword [esp + 0x14]
jmp 0x8610a6
mov dword [esp], 1
mov ecx, dword [esp + 0x24]
mov eax, ebx
mov edx, dword [esp + 0x20]
call fcn.00860f01
jmp 0x861f0f
mov dword [esp + 0x18], 0
jmp 0x86110d
mov ebx, dword [esp + 0x44]
test ebx, ebx
jne 0x862e45
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ebx
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x861d51
jmp 0x8610d2
mov ecx, dword [esp + 0x44]
test ecx, ecx
jne 0x862e0d
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ebx
mov edx, dword [esp + 0x40]
test edx, edx
jne 0x861b46
jmp 0x8610d2
test esi, esi
jne 0x8613f9
test ebp, 0x600
je 0x8633c1
mov edi, dword [esp + 0x44]
test edi, edi
jne 0x863868
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x8634fb
mov dword [esp], 0xc8
call fcn.0086ea09
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x40], eax
mov dword [ebx], eax
test eax, eax
jne 0x8613b3
and ebp, 0x400
mov eax, 0xffffffff
cmove eax, dword [esp + 0x30]
jmp 0x861f1d
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call fcn.00860e71
mov ebx, eax
cmp eax, 0xffffffff
je 0x863850
mov eax, ebx
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
jmp 0x86238f
mov edx, esi
mov eax, ebx
call fcn.00860e71
cmp eax, 0xffffffff
je 0x862396
sub edi, 1
test edi, edi
jg 0x862381
mov dword [esp + 0x18], 0
mov ebx, eax
jmp 0x86110d
mov edi, ebx
jmp 0x861553
mov dword [esp + 0x28], 0xffffffff
jmp 0x8612d6
movzx eax, byte [ecx + 1]
lea edi, [ecx + 1]
jmp 0x86120f
lea eax, [esp + 0x78]
mov ebx, 0xffffffff
mov dword [esp + 0x24], eax
call fcn.0086eb69
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov dword [eax], edi
mov eax, ebx
mov dword [esp], 0
call fcn.00860f01
jmp 0x861592
mov dword [esp + 0x24], ebx
mov ebp, dword [esp + 0x18]
mov ebx, edi
mov edi, dword [esp + 0x58]
jmp 0x862461
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
jmp 0x8610d2
mov ecx, ebx
mov ebx, edi
mov edi, ecx
cmp eax, 1
jne 0x861f41
mov eax, dword [esp + 0x18]
add dword [esp + 0x40], 2
mov edx, dword [esp + 0x40]
test eax, eax
jne 0x862616
mov eax, dword [esp + 0x54]
test eax, eax
je 0x862616
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x2c]
lea ecx, [eax + eax]
mov eax, dword [esi]
add eax, ecx
cmp edx, eax
je 0x863710
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x862627
sub eax, 1
mov dword [esp + 0x28], eax
je 0x86263b
mov edx, edi
mov eax, ebp
call fcn.00860e71
mov ebx, eax
cmp eax, 0xffffffff
jne 0x861da7
mov esi, dword [esp + 0x18]
test esi, esi
jne 0x862221
mov eax, dword [esp + 0x40]
lea esi, [eax + 2]
mov word [eax], 0
mov eax, dword [esp + 0x48]
mov edx, esi
mov ecx, eax
add ecx, eax
mov eax, dword [esp + 0x2c]
call fcn.00860ca1
add dword [esp + 0x30], 1
mov dword [esp + 0x40], esi
mov dword [esp + 0x2c], 0
jmp 0x86110d
mov ecx, ebx
mov ebx, esi
mov esi, edi
mov edi, ecx
cmp eax, 1
jne 0x861f41
sub dword [esp + 0x28], 1
mov eax, dword [esp + 0x28]
add dword [esp + 0x40], 2
test eax, eax
jle 0x8626b8
mov edx, ecx
mov eax, esi
call fcn.00860e71
mov ebx, eax
cmp eax, 0xffffffff
jne 0x861b99
cmp dword [esp + 0x18], 0
jne 0x862221
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
mov ecx, eax
add ecx, eax
mov eax, dword [esp + 0x2c]
call fcn.00860ca1
add dword [esp + 0x30], 1
mov dword [esp + 0x2c], 0
jmp 0x86110d
call fcn.0086eb69
mov dword [eax], 0x16
mov eax, 0xffffffff
jmp 0x8610ed
mov dword [esp + 0x4c], edi
mov esi, dword [esp + 0x44]
test esi, esi
jne 0x86110d
mov eax, dword [esp + 0x4c]
mov byte [eax], 0
lea esi, [eax + 1]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x2c]
mov edx, esi
call fcn.00860ca1
add dword [esp + 0x30], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x4c], esi
mov dword [esp + 0x2c], 0
jmp 0x86110d
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add ebx, 2
mov byte [edx + eax], 1
movzx eax, byte [ebx - 1]
mov dword [esp + 0x14], ebx
jmp 0x8614a6
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x5c], eax
test edx, edx
je 0x862c8c
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call fcn.00860e71
mov ebx, eax
cmp eax, 0xffffffff
je 0x8623a5
mov eax, ebp
lea edi, [esp + 0x98]
mov dword [esp + 0x64], ebp
mov edx, ebx
and eax, 0x600
mov dword [esp + 0x58], edi
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x98], 0
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x9c], 0
mov edi, dword [esp + 0x28]
mov dword [esp + 0x54], 0
mov dword [esp + 0x60], eax
jmp 0x862b96
sub edi, 1
je 0x862f2e
mov edx, ebx
mov eax, ebp
call fcn.00860e71
mov edx, eax
cmp eax, 0xffffffff
je 0x862f2e
mov eax, dword [esp + 0x80]
movzx ecx, byte [esp + 0x44]
cmp byte [eax + edx], cl
je 0x863414
test esi, esi
jne 0x862b79
mov eax, dword [esp + 0x58]
mov dword [esp + 8], 1
mov byte [esp + 0x8b], dl
mov dword [esp + 0xc], eax
lea eax, [esp + 0x8b]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], edx
mov dword [esp], eax
call fcn.0086ed61
mov edx, dword [esp + 0x18]
cmp eax, 0xfffffffe
je 0x862e61
mov eax, dword [esp + 0x60]
add dword [esp + 0x40], 2
test eax, eax
je 0x862c7f
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x54], 0
mov ecx, dword [ecx]
add eax, eax
mov dword [esp + 0x28], eax
add eax, ecx
cmp dword [esp + 0x40], eax
jne 0x862b79
mov eax, dword [esp + 0x28]
mov dword [esp + 0x54], ebx
mov ebx, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x48]
add eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
mov dword [esp], ecx
add eax, eax
mov dword [esp + 4], eax
call fcn.0086e9a1
test eax, eax
je 0x86390b
mov ecx, dword [esp + 0x2c]
mov edx, ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x54], 0
mov dword [ecx], eax
add eax, dword [esp + 0x28]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], eax
jmp 0x862b79
mov dword [esp + 0x54], 0
jmp 0x862b79
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call fcn.00860e71
mov ebx, eax
cmp eax, 0xffffffff
je 0x8623a5
mov ecx, ebp
mov dword [esp + 0x58], ebp
mov edi, dword [esp + 0x20]
and ecx, 0x600
mov dword [esp + 0x54], esi
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x4c], ecx
jmp 0x862d01
mov ecx, dword [esp + 0x2c]
mov esi, eax
mov edx, dword [ecx]
mov ecx, dword [esp + 0x48]
add ecx, edx
cmp eax, ecx
je 0x863342
sub dword [esp + 0x28], 1
je 0x862f96
mov edx, ebp
mov eax, edi
call fcn.00860e71
mov ebx, eax
cmp eax, 0xffffffff
je 0x862f96
mov eax, dword [esp + 0x80]
movzx ecx, byte [esp + 0x44]
cmp byte [eax + ebx], cl
je 0x8633f1
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x862ce2
mov byte [esi], bl
lea eax, [esi + 1]
mov esi, dword [esp + 0x4c]
test esi, esi
jne 0x862ccc
mov esi, eax
jmp 0x862ce2
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x48], ebp
mov ecx, esi
call fcn.00860ca1
add dword [esp + 0x30], 1
mov dword [esp + 0x2c], 0
jmp 0x86110d
mov eax, dword [esp + 0x48]
mov dword [esp + 0x4c], ebp
mov ebp, esi
mov esi, ebx
lea ecx, [eax + eax]
lea edi, [eax + 1]
mov ebx, ecx
mov dword [esp + 4], ebx
mov dword [esp], edx
call fcn.0086e9a1
test eax, eax
je 0x863b80
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x2c]
mov ecx, ebx
mov ebx, esi
mov dword [esp + 0x48], ecx
mov esi, ebp
mov ebp, dword [esp + 0x4c]
mov dword [edx], eax
add edi, eax
jmp 0x861845
mov edi, dword [esp + 0x44]
test edi, edi
jne 0x863431
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x4c]
test ebx, ebx
jne 0x8617ef
jmp 0x8610d2
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
jmp 0x861aca
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x40], eax
jmp 0x8622ce
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
jmp 0x861ce1
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x40], eax
jmp 0x86229e
add dword [esp + 0x54], 1
jmp 0x862b82
mov ecx, dword [esp + 0x44]
test ecx, ecx
jne 0x8635af
mov eax, dword [esp + 0x3c]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
test edi, edi
jne 0x861672
jmp 0x8610d2
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, ebx
mov dword [esp + 0x4c], edi
mov dword [esp], 1
mov esi, dword [esp + 0x44]
call fcn.00860f01
jmp 0x86274a
mov ebx, edx
mov ecx, dword [esp + 0x54]
test ecx, ecx
jne 0x861f41
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x78]
je 0x8610d2
mov dword [esp + 0x18], 0
test esi, esi
jne 0x86110d
mov eax, dword [esp + 0x40]
xor edx, edx
mov word [eax], dx
lea esi, [eax + 2]
mov eax, dword [esp + 0x48]
mov edx, esi
lea ecx, [eax + eax]
mov eax, dword [esp + 0x2c]
call fcn.00860ca1
mov eax, dword [esp + 0x54]
add dword [esp + 0x30], 1
mov dword [esp + 0x40], esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], 0
jmp 0x86110d
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x78]
jne 0x86274a
jmp 0x8610d2
mov eax, dword [esp + 0x48]
mov dword [esp + 0x60], ebp
mov ebp, edi
mov edi, ebx
lea ecx, [eax + eax]
lea esi, [eax + 1]
mov ebx, ecx
mov dword [esp + 4], ebx
mov dword [esp], edx
call fcn.0086e9a1
test eax, eax
je 0x863aad
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x2c]
mov ecx, ebx
mov ebx, edi
mov dword [esp + 0x48], ecx
mov edi, ebp
mov ebp, dword [esp + 0x60]
mov dword [edx], eax
add esi, eax
jmp 0x862ce2
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x863782
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], ebx
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x8613f9
jmp 0x8610d2
mov ecx, dword [esp + 0x44]
test ecx, ecx
jne 0x8638bc
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ebx
mov edx, dword [esp + 0x40]
test edx, edx
jne 0x8613f9
jmp 0x8610d2
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, ebx
mov dword [esp + 0x4c], esi
mov dword [esp], 1
mov esi, dword [esp + 0x54]
call fcn.00860f01
jmp 0x862f9e
mov dword [esp], 1
mov ebx, edx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, ebx
call fcn.00860f01
jmp 0x862f30
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
jmp 0x862ddb
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
jmp 0x86177f
lea eax, [esp + 0x80]
xor ecx, ecx
lea edx, [esp + 0x74]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call fcn.00860de1
jmp 0x8610ed
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov edi, dword [eax]
jmp 0x862eaa
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
jmp 0x8615fa
mov dword [esp], 1
mov ecx, dword [esp + 0x24]
mov eax, ebx
mov edx, dword [esp + 0x20]
call fcn.00860f01
jmp 0x86263b
mov eax, dword [esp + 0x48]
mov dword [esp + 0x40], ebp
mov esi, ecx
mov ebp, ebx
mov dword [esp + 0x5c], edi
mov edi, ecx
lea edx, [eax + 1]
mov ebx, edx
lea eax, [esi + esi]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0086e9a1
test eax, eax
je 0x863abe
mov edx, dword [esp + 0x2c]
mov ecx, edi
mov ebx, ebp
mov dword [esp + 0x48], esi
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x5c]
mov dword [edx], eax
add eax, ecx
mov dword [esp + 0x40], eax
jmp 0x862616
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
jmp 0x8633a6
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
jmp 0x861389
cmp dword [esp + 0x30], 0
jne 0x8610d2
mov dword [esp + 0x30], 0xffffffff
jmp 0x8610d2
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
jmp 0x862312
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x40], eax
jmp 0x8633de
movzx eax, bl
jmp 0x8614d0
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x24]
cmp ecx, eax
jae 0x86393f
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x24], ecx
mov eax, dword [eax]
jmp 0x861c05
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
cmp eax, ecx
jae 0x863957
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov ecx, dword [ecx]
jmp 0x862c3c
lea eax, [esp + 0x74]
lea edx, [esp + 0x80]
call fcn.00860ce1
or eax, 0xffffffff
jmp 0x8610ed
mov ebp, dword [esp + 0x64]
and ebp, 0x400
je 0x86398e
or eax, 0xffffffff
lea edx, [esp + 0x80]
mov ecx, dword [esp + 0x2c]
mov dword [esp], edx
lea edx, [esp + 0x74]
call fcn.00860de1
jmp 0x8610ed
mov ebp, dword [esp + 0x58]
and ebp, 0x400
jne 0x863963
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x48]
mov eax, dword [eax]
mov word [eax + ebx*2 - 2], 0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], 0
add eax, 1
jmp 0x863966
cmp esi, ebx
jae 0x863ae6
mov eax, dword [esp + 0x2c]
mov ebx, esi
mov edx, dword [eax]
jmp 0x863356
cmp ebx, esi
jae 0x863982
mov esi, ebx
jmp 0x863727
mov ebp, dword [esp + 0x58]
and ebp, 0x400
jne 0x863963
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x48]
mov eax, dword [eax]
mov byte [eax + ebx - 1], 0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], 0
add eax, 1
jmp 0x863966
cmp ebx, esi
jae 0x86393f
mov eax, dword [esp + 0x2c]
mov esi, ebx
mov edx, dword [eax]
jmp 0x8616fb
cmp edi, ebx
jae 0x863c56
mov eax, dword [esp + 0x2c]
mov ebx, edi
mov edx, dword [eax]
jmp 0x862d8b
mov ebp, dword [esp + 0x54]
and ebp, 0x400
je 0x863af6
jmp 0x863963