814f5d:	53                   	push   %ebx
814f5e:	56                   	push   %esi
814f5f:	8b 75 08             	mov    0x8(%ebp),%esi
814f62:	57                   	push   %edi
814f63:	6a ff                	push   $0xffffffff
814f65:	56                   	push   %esi
814f66:	e8 b9 ad c1 ff       	call   0x42fd24
814f6b:	85 c0                	test   %eax,%eax
814f6d:	74 46                	je     0x814fb5
814f6f:	56                   	push   %esi
814f70:	bb c5 9d 1c 81       	mov    $0x811c9dc5,%ebx
814f75:	33 ff                	xor    %edi,%edi
814f77:	e8 10 fc bf ff       	call   0x414b8c
814f7c:	59                   	pop    %ecx
814f7d:	33 d2                	xor    %edx,%edx
814f7f:	c7 45 fc 0a 00 00 00 	movl   $0xa,-0x4(%ebp)
814f86:	8b c8                	mov    %eax,%ecx
814f88:	f7 75 fc             	divl   -0x4(%ebp)
814f8b:	89 45 fc             	mov    %eax,-0x4(%ebp)
814f8e:	85 c9                	test   %ecx,%ecx
814f90:	74 18                	je     0x814faa
814f92:	8b d1                	mov    %ecx,%edx
814f94:	8b 45 fc             	mov    -0x4(%ebp),%eax
814f97:	0f b7 0c 7e          	movzwl (%esi,%edi,2),%ecx
814f9b:	40                   	inc    %eax
814f9c:	69 db 93 01 00 01    	imul   $0x1000193,%ebx,%ebx
814fa2:	03 f8                	add    %eax,%edi
814fa4:	33 d9                	xor    %ecx,%ebx
814fa6:	3b fa                	cmp    %edx,%edi
814fa8:	72 ea                	jb     0x814f94
814faa:	5f                   	pop    %edi
814fab:	5e                   	pop    %esi
814fac:	8b c3                	mov    %ebx,%eax
814fae:	5b                   	pop    %ebx
814faf:	8b e5                	mov    %ebp,%esp
814fb1:	5d                   	pop    %ebp
814fb2:	c2 04 00             	ret    $0x4
814fb5:	e8 ac cf c1 ff       	call   0x431f66
814fba:	cc                   	int3
814fbb:	cc                   	int3
814fbc:	cc                   	int3
814fbd:	cc                   	int3
814fbe:	cc                   	int3
814fbf:	cc                   	int3
814fc0:	cc                   	int3
814fc1:	cc                   	int3
814fc2:	cc                   	int3
814fc3:	cc                   	int3
814fc4:	cc                   	int3
814fc5:	cc                   	int3
814fc6:	cc                   	int3
814fc7:	cc                   	int3
814fc8:	cc                   	int3
814fc9:	cc                   	int3
814fca:	cc                   	int3
814fcb:	cc                   	int3
814fcc:	cc                   	int3
814fcd:	cc                   	int3
814fce:	cc                   	int3
814fcf:	cc                   	int3
814fd0:	cc                   	int3
814fd1:	cc                   	int3
814fd2:	cc                   	int3
814fd3:	55                   	push   %ebp
814fd4:	8b ec                	mov    %esp,%ebp
814fd6:	51                   	push   %ecx
814fd7:	8b 45 08             	mov    0x8(%ebp),%eax
814fda:	56                   	push   %esi
814fdb:	33 f6                	xor    %esi,%esi
814fdd:	57                   	push   %edi
814fde:	bf c5 9d 1c 81       	mov    $0x811c9dc5,%edi
814fe3:	85 c0                	test   %eax,%eax
814fe5:	74 32                	je     0x815019
814fe7:	53                   	push   %ebx
814fe8:	50                   	push   %eax
814fe9:	e8 9e fb bf ff       	call   0x414b8c
814fee:	59                   	pop    %ecx
814fef:	6a 0a                	push   $0xa
814ff1:	8b d8                	mov    %eax,%ebx
814ff3:	33 d2                	xor    %edx,%edx
814ff5:	59                   	pop    %ecx
814ff6:	f7 f1                	div    %ecx
814ff8:	89 45 fc             	mov    %eax,-0x4(%ebp)
814ffb:	8b 45 08             	mov    0x8(%ebp),%eax
814ffe:	85 db                	test   %ebx,%ebx
815000:	74 16                	je     0x815018
815002:	8b 4d fc             	mov    -0x4(%ebp),%ecx
815005:	0f b7 14 70          	movzwl (%eax,%esi,2),%edx
815009:	41                   	inc    %ecx
81500a:	69 ff 93 01 00 01    	imul   $0x1000193,%edi,%edi
815010:	03 f1                	add    %ecx,%esi
815012:	33 fa                	xor    %edx,%edi
815014:	3b f3                	cmp    %ebx,%esi
815016:	72 ea                	jb     0x815002
815018:	5b                   	pop    %ebx
815019:	50                   	push   %eax
81501a:	ff 15 24 3b d8 00    	call   *0xd83b24
815020:	8b c7                	mov    %edi,%eax
815022:	5f                   	pop    %edi
815023:	5e                   	pop    %esi
815024:	8b e5                	mov    %ebp,%esp
815026:	5d                   	pop    %ebp
815027:	c2 04 00             	ret    $0x4
81502a:	cc                   	int3
81502b:	cc                   	int3
81502c:	cc                   	int3
81502d:	cc                   	int3
81502e:	cc                   	int3
81502f:	cc                   	int3
815030:	cc                   	int3
815031:	cc                   	int3
815032:	cc                   	int3
815033:	cc                   	int3
815034:	cc                   	int3
815035:	cc                   	int3
815036:	cc                   	int3
815037:	cc                   	int3
815038:	cc                   	int3
815039:	cc                   	int3
81503a:	cc                   	int3
81503b:	cc                   	int3
81503c:	cc                   	int3
81503d:	cc                   	int3
81503e:	cc                   	int3
81503f:	e9 62 a5 bf ff       	jmp    0x40f5a6
815044:	e9 54 da c0 ff       	jmp    0x422a9d
815049:	e9 c5 af c0 ff       	jmp    0x420013
81504e:	55                   	push   %ebp
81504f:	8b ec                	mov    %esp,%ebp
815051:	56                   	push   %esi
815052:	8b 75 0c             	mov    0xc(%ebp),%esi
815055:	57                   	push   %edi
815056:	8b 7d 10             	mov    0x10(%ebp),%edi
815059:	85 ff                	test   %edi,%edi
81505b:	74 3c                	je     0x815099
81505d:	85 f6                	test   %esi,%esi
81505f:	74 3e                	je     0x81509f
815061:	85 ff                	test   %edi,%edi
815063:	74 34                	je     0x815099
815065:	85 f6                	test   %esi,%esi
815067:	74 30                	je     0x815099
815069:	53                   	push   %ebx
81506a:	8b 5d 08             	mov    0x8(%ebp),%ebx
81506d:	8b 43 18             	mov    0x18(%ebx),%eax
815070:	f7 d0                	not    %eax
815072:	a8 01                	test   $0x1,%al
815074:	74 12                	je     0x815088
815076:	56                   	push   %esi
815077:	8b cb                	mov    %ebx,%ecx
815079:	e8 62 ee be ff       	call   0x403ee0
81507e:	83 c6 04             	add    $0x4,%esi
815081:	83 ef 01             	sub    $0x1,%edi
815084:	75 f0                	jne    0x815076
815086:	eb 10                	jmp    0x815098
815088:	56                   	push   %esi
815089:	8b cb                	mov    %ebx,%ecx
81508b:	e8 fa c0 bf ff       	call   0x41118a
815090:	83 c6 04             	add    $0x4,%esi
815093:	83 ef 01             	sub    $0x1,%edi
815096:	75 f0                	jne    0x815088
815098:	5b                   	pop    %ebx
815099:	5f                   	pop    %edi
81509a:	5e                   	pop    %esi
81509b:	5d                   	pop    %ebp
81509c:	c2 0c 00             	ret    $0xc
81509f:	e8 c2 ce c1 ff       	call   0x431f66
8150a4:	cc                   	int3
8150a5:	cc                   	int3
8150a6:	cc                   	int3
8150a7:	cc                   	int3
8150a8:	cc                   	int3
8150a9:	cc                   	int3
8150aa:	cc                   	int3
8150ab:	cc                   	int3
8150ac:	cc                   	int3
8150ad:	cc                   	int3
8150ae:	cc                   	int3
8150af:	cc                   	int3
8150b0:	cc                   	int3
8150b1:	cc                   	int3
8150b2:	cc                   	int3
8150b3:	cc                   	int3
8150b4:	cc                   	int3
8150b5:	cc                   	int3
8150b6:	cc                   	int3
8150b7:	cc                   	int3
8150b8:	cc                   	int3
8150b9:	cc                   	int3
8150ba:	55                   	push   %ebp
8150bb:	8b ec                	mov    %esp,%ebp
8150bd:	56                   	push   %esi
8150be:	8b 75 0c             	mov    0xc(%ebp),%esi
8150c1:	57                   	push   %edi
8150c2:	8b 7d 10             	mov    0x10(%ebp),%edi
8150c5:	85 ff                	test   %edi,%edi
8150c7:	74 3c                	je     0x815105
8150c9:	85 f6                	test   %esi,%esi
8150cb:	74 3e                	je     0x81510b
8150cd:	85 ff                	test   %edi,%edi
8150cf:	74 34                	je     0x815105
8150d1:	85 f6                	test   %esi,%esi
8150d3:	74 30                	je     0x815105
8150d5:	53                   	push   %ebx
8150d6:	8b 5d 08             	mov    0x8(%ebp),%ebx
8150d9:	8b 43 18             	mov    0x18(%ebx),%eax
8150dc:	f7 d0                	not    %eax
8150de:	a8 01                	test   $0x1,%al
8150e0:	74 12                	je     0x8150f4
8150e2:	56                   	push   %esi
8150e3:	8b cb                	mov    %ebx,%ecx
8150e5:	e8 df ef bf ff       	call   0x4140c9
8150ea:	83 c6 04             	add    $0x4,%esi
8150ed:	83 ef 01             	sub    $0x1,%edi
8150f0:	75 f0                	jne    0x8150e2
8150f2:	eb 10                	jmp    0x815104
8150f4:	56                   	push   %esi
8150f5:	8b cb                	mov    %ebx,%ecx
8150f7:	e8 44 b9 c0 ff       	call   0x420a40
8150fc:	83 c6 04             	add    $0x4,%esi
8150ff:	83 ef 01             	sub    $0x1,%edi
815102:	75 f0                	jne    0x8150f4
815104:	5b                   	pop    %ebx
815105:	5f                   	pop    %edi
815106:	5e                   	pop    %esi
815107:	5d                   	pop    %ebp
815108:	c2 0c 00             	ret    $0xc
81510b:	e8 56 ce c1 ff       	call   0x431f66
815110:	cc                   	int3
815111:	cc                   	int3
815112:	cc                   	int3
815113:	cc                   	int3
815114:	cc                   	int3
815115:	cc                   	int3
815116:	cc                   	int3
815117:	cc                   	int3
815118:	cc                   	int3
815119:	cc                   	int3
81511a:	cc                   	int3
81511b:	cc                   	int3
81511c:	cc                   	int3
81511d:	cc                   	int3
81511e:	cc                   	int3
81511f:	cc                   	int3
815120:	cc                   	int3
815121:	cc                   	int3
815122:	cc                   	int3
815123:	cc                   	int3
815124:	cc                   	int3
815125:	cc                   	int3
815126:	55                   	push   %ebp
815127:	8b ec                	mov    %esp,%ebp
815129:	51                   	push   %ecx
81512a:	53                   	push   %ebx
81512b:	56                   	push   %esi
81512c:	8b 75 0c             	mov    0xc(%ebp),%esi
81512f:	57                   	push   %edi
815130:	8b 7d 10             	mov    0x10(%ebp),%edi
815133:	85 ff                	test   %edi,%edi
815135:	74 40                	je     0x815177
815137:	85 f6                	test   %esi,%esi
815139:	74 45                	je     0x815180
81513b:	85 ff                	test   %edi,%edi
81513d:	74 38                	je     0x815177
81513f:	85 f6                	test   %esi,%esi
815141:	74 34                	je     0x815177
815143:	8b 5d 08             	mov    0x8(%ebp),%ebx
815146:	8b 43 18             	mov    0x18(%ebx),%eax
815149:	f7 d0                	not    %eax
81514b:	a8 01                	test   $0x1,%al
81514d:	74 19                	je     0x815168
81514f:	51                   	push   %ecx
815150:	8b cc                	mov    %esp,%ecx
815152:	56                   	push   %esi
815153:	e8 54 8f bf ff       	call   0x40e0ac
815158:	53                   	push   %ebx
815159:	e8 97 35 c1 ff       	call   0x4286f5
81515e:	83 c6 04             	add    $0x4,%esi
815161:	83 ef 01             	sub    $0x1,%edi
815164:	75 e9                	jne    0x81514f
815166:	eb 0f                	jmp    0x815177
815168:	56                   	push   %esi
815169:	53                   	push   %ebx
81516a:	e8 dd ad bf ff       	call   0x40ff4c
81516f:	83 c6 04             	add    $0x4,%esi
815172:	83 ef 01             	sub    $0x1,%edi
815175:	75 f1                	jne    0x815168
815177:	5f                   	pop    %edi
815178:	5e                   	pop    %esi
815179:	5b                   	pop    %ebx
81517a:	8b e5                	mov    %ebp,%esp
81517c:	5d                   	pop    %ebp
81517d:	c2 0c 00             	ret    $0xc
815180:	e8 e1 cd c1 ff       	call   0x431f66
815185:	cc                   	int3
815186:	cc                   	int3
815187:	cc                   	int3
815188:	cc                   	int3
815189:	cc                   	int3
81518a:	cc                   	int3
81518b:	cc                   	int3
81518c:	cc                   	int3
81518d:	cc                   	int3
81518e:	cc                   	int3
81518f:	cc                   	int3
815190:	cc                   	int3
815191:	cc                   	int3
815192:	cc                   	int3
815193:	cc                   	int3
815194:	cc                   	int3
815195:	cc                   	int3
815196:	cc                   	int3
815197:	cc                   	int3
815198:	cc                   	int3
815199:	cc                   	int3
81519a:	cc                   	int3
81519b:	cc                   	int3
81519c:	cc                   	int3
81519d:	cc                   	int3
81519e:	55                   	push   %ebp
81519f:	8b ec                	mov    %esp,%ebp
8151a1:	53                   	push   %ebx
8151a2:	56                   	push   %esi
8151a3:	57                   	push   %edi
8151a4:	8b 7d 08             	mov    0x8(%ebp),%edi
8151a7:	8b d9                	mov    %ecx,%ebx
8151a9:	85 ff                	test   %edi,%edi
8151ab:	74 1e                	je     0x8151cb
8151ad:	8b 07                	mov    (%edi),%eax
8151af:	8b 70 0c             	mov    0xc(%eax),%esi
8151b2:	8b ce                	mov    %esi,%ecx
8151b4:	e8 ac 74 c1 ff       	call   0x42c665
8151b9:	8b cf                	mov    %edi,%ecx
8151bb:	ff d6                	call   *%esi
8151bd:	83 c0 10             	add    $0x10,%eax
8151c0:	5f                   	pop    %edi
8151c1:	89 03                	mov    %eax,(%ebx)
8151c3:	8b c3                	mov    %ebx,%eax
8151c5:	5e                   	pop    %esi
8151c6:	5b                   	pop    %ebx
8151c7:	5d                   	pop    %ebp
8151c8:	c2 04 00             	ret    $0x4
8151cb:	68 05 40 00 80       	push   $0x80004005
8151d0:	e8 f9 24 c1 ff       	call   0x4276ce
8151d5:	cc                   	int3
8151d6:	cc                   	int3
8151d7:	cc                   	int3
8151d8:	cc                   	int3
8151d9:	cc                   	int3
8151da:	cc                   	int3
8151db:	cc                   	int3