403f34:	80 3c 08 00          	cmpb   $0x0,(%eax,%ecx,1)
403f38:	74 16                	je     0x403f50
403f3a:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
403f3e:	8d 45 d8             	lea    -0x28(%ebp),%eax
403f41:	0f 43 45 d8          	cmovae -0x28(%ebp),%eax
403f45:	0f be 04 08          	movsbl (%eax,%ecx,1),%eax
403f49:	03 f8                	add    %eax,%edi
403f4b:	e9 8e 00 00 00       	jmp    0x403fde
403f50:	03 fa                	add    %edx,%edi
403f52:	0f b7 04 7b          	movzwl (%ebx,%edi,2),%eax
403f56:	66 3b 03             	cmp    (%ebx),%ax
403f59:	74 5e                	je     0x403fb9
403f5b:	66 85 c0             	test   %ax,%ax
403f5e:	74 59                	je     0x403fb9
403f60:	ff 75 c0             	push   -0x40(%ebp)
403f63:	8b 4d cc             	mov    -0x34(%ebp),%ecx
403f66:	e8 89 cc 01 00       	call   0x420bf4
403f6b:	84 c0                	test   %al,%al
403f6d:	75 26                	jne    0x403f95
403f6f:	8b 55 cc             	mov    -0x34(%ebp),%edx
403f72:	38 42 04             	cmp    %al,0x4(%edx)
403f75:	75 0a                	jne    0x403f81
403f77:	8b ca                	mov    %edx,%ecx
403f79:	e8 17 85 01 00       	call   0x41c495
403f7e:	8b 55 cc             	mov    -0x34(%ebp),%edx
403f81:	0f b7 42 06          	movzwl 0x6(%edx),%eax
403f85:	66 39 04 7b          	cmp    %ax,(%ebx,%edi,2)
403f89:	75 0a                	jne    0x403f95
403f8b:	8b 4d c8             	mov    -0x38(%ebp),%ecx
403f8e:	b0 01                	mov    $0x1,%al
403f90:	88 45 d7             	mov    %al,-0x29(%ebp)
403f93:	eb 4f                	jmp    0x403fe4
403f95:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
403f99:	8d 55 d8             	lea    -0x28(%ebp),%edx
403f9c:	8b 45 d0             	mov    -0x30(%ebp),%eax
403f9f:	0f 43 55 d8          	cmovae -0x28(%ebp),%edx
403fa3:	6a 7f                	push   $0x7f
403fa5:	59                   	pop    %ecx
403fa6:	39 4d d0             	cmp    %ecx,-0x30(%ebp)
403fa9:	0f b6 c0             	movzbl %al,%eax
403fac:	0f 42 c8             	cmovb  %eax,%ecx
403faf:	8b 45 c8             	mov    -0x38(%ebp),%eax
403fb2:	88 0c 02             	mov    %cl,(%edx,%eax,1)
403fb5:	8b c8                	mov    %eax,%ecx
403fb7:	eb 25                	jmp    0x403fde
403fb9:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
403fbd:	8d 55 d8             	lea    -0x28(%ebp),%edx
403fc0:	8b 45 d0             	mov    -0x30(%ebp),%eax
403fc3:	0f 43 55 d8          	cmovae -0x28(%ebp),%edx
403fc7:	6a 7f                	push   $0x7f
403fc9:	59                   	pop    %ecx
403fca:	39 4d d0             	cmp    %ecx,-0x30(%ebp)
403fcd:	0f b6 c0             	movzbl %al,%eax
403fd0:	0f 42 c8             	cmovb  %eax,%ecx
403fd3:	8b 45 c8             	mov    -0x38(%ebp),%eax
403fd6:	88 0c 02             	mov    %cl,(%edx,%eax,1)
403fd9:	8b c8                	mov    %eax,%ecx
403fdb:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
403fde:	8b 55 cc             	mov    -0x34(%ebp),%edx
403fe1:	8a 45 d7             	mov    -0x29(%ebp),%al
403fe4:	41                   	inc    %ecx
403fe5:	89 4d c8             	mov    %ecx,-0x38(%ebp)
403fe8:	3b ce                	cmp    %esi,%ecx
403fea:	0f 82 14 ff ff ff    	jb     0x403f04
403ff0:	84 c0                	test   %al,%al
403ff2:	0f 84 f7 fe ff ff    	je     0x403eef
403ff8:	ff 75 c0             	push   -0x40(%ebp)
403ffb:	8b ca                	mov    %edx,%ecx
403ffd:	e8 f2 cb 01 00       	call   0x420bf4
404002:	84 c0                	test   %al,%al
404004:	0f 85 e5 fe ff ff    	jne    0x403eef
40400a:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40400d:	ff 45 d0             	incl   -0x30(%ebp)
404010:	e8 ba 6d 01 00       	call   0x41adcf
404015:	83 4d c4 ff          	orl    $0xffffffff,-0x3c(%ebp)
404019:	8b 55 d0             	mov    -0x30(%ebp),%edx
40401c:	e9 bf fe ff ff       	jmp    0x403ee0
404021:	56                   	push   %esi
404022:	be 64 ab 4b 00       	mov    $0x4bab64,%esi
404027:	56                   	push   %esi
404028:	68 48 40 40 00       	push   $0x404048
40402d:	68 60 ab 4b 00       	push   $0x4bab60
404032:	e8 31 31 02 00       	call   0x427168
404037:	83 c4 0c             	add    $0xc,%esp
40403a:	85 c0                	test   %eax,%eax
40403c:	74 04                	je     0x404042
40403e:	8b c6                	mov    %esi,%eax
404040:	5e                   	pop    %esi
404041:	c3                   	ret
404042:	e8 dc 36 06 00       	call   0x467723
404047:	cc                   	int3
404048:	55                   	push   %ebp
404049:	8b ec                	mov    %esp,%ebp
40404b:	8b 45 0c             	mov    0xc(%ebp),%eax
40404e:	c7 00 94 46 49 00    	movl   $0x494694,(%eax)
404054:	c7 40 04 05 00 00 00 	movl   $0x5,0x4(%eax)
40405b:	33 c0                	xor    %eax,%eax
40405d:	40                   	inc    %eax
40405e:	5d                   	pop    %ebp
40405f:	c2 0c 00             	ret    $0xc
404062:	55                   	push   %ebp
404063:	8b ec                	mov    %esp,%ebp
404065:	51                   	push   %ecx
404066:	53                   	push   %ebx
404067:	56                   	push   %esi
404068:	8b 75 08             	mov    0x8(%ebp),%esi
40406b:	33 c0                	xor    %eax,%eax
40406d:	57                   	push   %edi
40406e:	8b 7d 0c             	mov    0xc(%ebp),%edi
404071:	33 db                	xor    %ebx,%ebx
404073:	2b fe                	sub    %esi,%edi
404075:	89 4d fc             	mov    %ecx,-0x4(%ebp)
404078:	3b 75 0c             	cmp    0xc(%ebp),%esi
40407b:	0f 47 f8             	cmova  %eax,%edi
40407e:	85 ff                	test   %edi,%edi
404080:	74 12                	je     0x404094
404082:	0f b6 06             	movzbl (%esi),%eax
404085:	50                   	push   %eax
404086:	e8 48 70 01 00       	call   0x41b0d3
40408b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40408e:	46                   	inc    %esi
40408f:	43                   	inc    %ebx
404090:	3b df                	cmp    %edi,%ebx
404092:	75 ee                	jne    0x404082
404094:	5f                   	pop    %edi
404095:	5e                   	pop    %esi
404096:	5b                   	pop    %ebx
404097:	c9                   	leave
404098:	c2 08 00             	ret    $0x8
40409b:	55                   	push   %ebp
40409c:	8b ec                	mov    %esp,%ebp
40409e:	51                   	push   %ecx
40409f:	53                   	push   %ebx
4040a0:	56                   	push   %esi
4040a1:	8b 75 0c             	mov    0xc(%ebp),%esi
4040a4:	33 db                	xor    %ebx,%ebx
4040a6:	57                   	push   %edi
4040a7:	8b 7d 08             	mov    0x8(%ebp),%edi
4040aa:	33 c0                	xor    %eax,%eax
4040ac:	2b f7                	sub    %edi,%esi
4040ae:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4040b1:	46                   	inc    %esi
4040b2:	d1 ee                	shr    $1,%esi
4040b4:	3b 7d 0c             	cmp    0xc(%ebp),%edi
4040b7:	0f 47 f0             	cmova  %eax,%esi
4040ba:	85 f6                	test   %esi,%esi
4040bc:	74 14                	je     0x4040d2
4040be:	0f b7 07             	movzwl (%edi),%eax
4040c1:	50                   	push   %eax
4040c2:	e8 36 70 01 00       	call   0x41b0fd
4040c7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4040ca:	8d 7f 02             	lea    0x2(%edi),%edi
4040cd:	43                   	inc    %ebx
4040ce:	3b de                	cmp    %esi,%ebx
4040d0:	75 ec                	jne    0x4040be
4040d2:	5f                   	pop    %edi
4040d3:	5e                   	pop    %esi
4040d4:	5b                   	pop    %ebx
4040d5:	c9                   	leave
4040d6:	c2 08 00             	ret    $0x8
4040d9:	6a 18                	push   $0x18
4040db:	b8 7a a1 48 00       	mov    $0x48a17a,%eax
4040e0:	e8 d0 b9 03 00       	call   0x43fab5
4040e5:	8b 7d 08             	mov    0x8(%ebp),%edi
4040e8:	33 db                	xor    %ebx,%ebx
4040ea:	8b c3                	mov    %ebx,%eax
4040ec:	89 45 e8             	mov    %eax,-0x18(%ebp)
4040ef:	89 45 ec             	mov    %eax,-0x14(%ebp)
4040f2:	8b 07                	mov    (%edi),%eax
4040f4:	8b 40 04             	mov    0x4(%eax),%eax
4040f7:	8b 74 38 20          	mov    0x20(%eax,%edi,1),%esi
4040fb:	39 5c 38 24          	cmp    %ebx,0x24(%eax,%edi,1)
4040ff:	7c 11                	jl     0x404112
404101:	7f 04                	jg     0x404107
404103:	3b f3                	cmp    %ebx,%esi
404105:	76 0b                	jbe    0x404112
404107:	8b 45 10             	mov    0x10(%ebp),%eax
40410a:	3b f0                	cmp    %eax,%esi
40410c:	76 04                	jbe    0x404112
40410e:	2b f0                	sub    %eax,%esi
404110:	eb 02                	jmp    0x404114
404112:	8b f3                	mov    %ebx,%esi
404114:	57                   	push   %edi
404115:	8d 4d dc             	lea    -0x24(%ebp),%ecx
404118:	e8 cc 8f 00 00       	call   0x40d0e9
40411d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
404120:	80 7d e0 00          	cmpb   $0x0,-0x20(%ebp)
404124:	75 08                	jne    0x40412e
404126:	6a 04                	push   $0x4
404128:	5a                   	pop    %edx
404129:	e9 f4 00 00 00       	jmp    0x404222
40412e:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
404132:	8b 0f                	mov    (%edi),%ecx
404134:	8b 41 04             	mov    0x4(%ecx),%eax
404137:	8b 44 38 14          	mov    0x14(%eax,%edi,1),%eax
40413b:	25 c0 01 00 00       	and    $0x1c0,%eax
404140:	83 f8 40             	cmp    $0x40,%eax
404143:	74 38                	je     0x40417d
404145:	85 f6                	test   %esi,%esi
404147:	74 32                	je     0x40417b
404149:	8b 07                	mov    (%edi),%eax
40414b:	8b 40 04             	mov    0x4(%eax),%eax
40414e:	8b 4c 38 38          	mov    0x38(%eax,%edi,1),%ecx
404152:	0f b7 44 38 40       	movzwl 0x40(%eax,%edi,1),%eax
404157:	50                   	push   %eax
404158:	e8 7c eb 01 00       	call   0x422cd9
40415d:	0f b7 c0             	movzwl %ax,%eax
404160:	b9 ff ff 00 00       	mov    $0xffff,%ecx
404165:	66 3b c8             	cmp    %ax,%cx
404168:	75 0b                	jne    0x404175
40416a:	6a 04                	push   $0x4
40416c:	58                   	pop    %eax
40416d:	89 45 e8             	mov    %eax,-0x18(%ebp)
404170:	89 45 ec             	mov    %eax,-0x14(%ebp)
404173:	eb 26                	jmp    0x40419b
404175:	4e                   	dec    %esi
404176:	89 75 e4             	mov    %esi,-0x1c(%ebp)
404179:	eb ca                	jmp    0x404145
40417b:	8b 0f                	mov    (%edi),%ecx
40417d:	8b 41 04             	mov    0x4(%ecx),%eax
404180:	8b 4c 38 38          	mov    0x38(%eax,%edi,1),%ecx
404184:	8b 01                	mov    (%ecx),%eax
404186:	8b 40 24             	mov    0x24(%eax),%eax
404189:	53                   	push   %ebx
40418a:	ff 75 10             	push   0x10(%ebp)
40418d:	ff 75 0c             	push   0xc(%ebp)
404190:	ff d0                	call   *%eax
404192:	3b 45 10             	cmp    0x10(%ebp),%eax
404195:	75 3a                	jne    0x4041d1
404197:	3b d3                	cmp    %ebx,%edx
404199:	75 36                	jne    0x4041d1
40419b:	85 f6                	test   %esi,%esi
40419d:	74 37                	je     0x4041d6
40419f:	8b 07                	mov    (%edi),%eax
4041a1:	8b 40 04             	mov    0x4(%eax),%eax
4041a4:	8b 4c 38 38          	mov    0x38(%eax,%edi,1),%ecx
4041a8:	0f b7 44 38 40       	movzwl 0x40(%eax,%edi,1),%eax
4041ad:	50                   	push   %eax
4041ae:	e8 26 eb 01 00       	call   0x422cd9
4041b3:	0f b7 c0             	movzwl %ax,%eax
4041b6:	b9 ff ff 00 00       	mov    $0xffff,%ecx
4041bb:	66 3b c8             	cmp    %ax,%cx
4041be:	75 0b                	jne    0x4041cb
4041c0:	8b 55 e8             	mov    -0x18(%ebp),%edx
4041c3:	83 ca 04             	or     $0x4,%edx
4041c6:	89 55 ec             	mov    %edx,-0x14(%ebp)
4041c9:	eb 0e                	jmp    0x4041d9
4041cb:	4e                   	dec    %esi
4041cc:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4041cf:	eb ca                	jmp    0x40419b
4041d1:	6a 04                	push   $0x4
4041d3:	5a                   	pop    %edx
4041d4:	eb f0                	jmp    0x4041c6
4041d6:	8b 55 e8             	mov    -0x18(%ebp),%edx
4041d9:	8b 07                	mov    (%edi),%eax
4041db:	8b 40 04             	mov    0x4(%eax),%eax
4041de:	89 5c 38 20          	mov    %ebx,0x20(%eax,%edi,1)
4041e2:	89 5c 38 24          	mov    %ebx,0x24(%eax,%edi,1)
4041e6:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4041e9:	eb 37                	jmp    0x404222
4041eb:	8b 4d 08             	mov    0x8(%ebp),%ecx
4041ee:	8b 01                	mov    (%ecx),%eax
4041f0:	8b 70 04             	mov    0x4(%eax),%esi
4041f3:	03 f1                	add    %ecx,%esi
4041f5:	8b 56 0c             	mov    0xc(%esi),%edx
4041f8:	83 ca 04             	or     $0x4,%edx
4041fb:	6a 01                	push   $0x1
4041fd:	8b c2                	mov    %edx,%eax
4041ff:	83 c8 04             	or     $0x4,%eax
404202:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
404206:	0f 44 d0             	cmove  %eax,%edx
404209:	52                   	push   %edx
40420a:	8b ce                	mov    %esi,%ecx
40420c:	e8 38 b7 01 00       	call   0x41f949
404211:	b8 17 42 40 00       	mov    $0x404217,%eax
404216:	c3                   	ret
404217:	33 db                	xor    %ebx,%ebx
404219:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40421c:	8b 7d 08             	mov    0x8(%ebp),%edi
40421f:	8b 55 ec             	mov    -0x14(%ebp),%edx
404222:	8b 07                	mov    (%edi),%eax
404224:	8b 48 04             	mov    0x4(%eax),%ecx
404227:	03 cf                	add    %edi,%ecx
404229:	8b 71 0c             	mov    0xc(%ecx),%esi
40422c:	0b f2                	or     %edx,%esi
40422e:	53                   	push   %ebx
40422f:	8b d6                	mov    %esi,%edx
404231:	83 ca 04             	or     $0x4,%edx
404234:	39 59 38             	cmp    %ebx,0x38(%ecx)
404237:	0f 44 f2             	cmove  %edx,%esi
40423a:	56                   	push   %esi
40423b:	e8 09 b7 01 00       	call   0x41f949
404240:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404244:	8d 4d dc             	lea    -0x24(%ebp),%ecx
404247:	e8 0e b3 00 00       	call   0x40f55a
40424c:	8b c7                	mov    %edi,%eax
40424e:	e8 c0 b7 03 00       	call   0x43fa13
404253:	c3                   	ret
404254:	6a 3c                	push   $0x3c
404256:	b8 ae a1 48 00       	mov    $0x48a1ae,%eax
40425b:	e8 1e b8 03 00       	call   0x43fa7e
404260:	8b 75 08             	mov    0x8(%ebp),%esi
404263:	8b 45 0c             	mov    0xc(%ebp),%eax
404266:	89 75 b8             	mov    %esi,-0x48(%ebp)
404269:	83 65 bc 00          	andl   $0x0,-0x44(%ebp)
40426d:	85 c0                	test   %eax,%eax
40426f:	79 19                	jns    0x40428a
404271:	f7 d8                	neg    %eax
404273:	50                   	push   %eax
404274:	8d 45 ee             	lea    -0x12(%ebp),%eax
404277:	50                   	push   %eax
404278:	e8 fb 1f 00 00       	call   0x406278
40427d:	59                   	pop    %ecx
40427e:	59                   	pop    %ecx
40427f:	83 e8 02             	sub    $0x2,%eax
404282:	6a 2d                	push   $0x2d
404284:	59                   	pop    %ecx
404285:	66 89 08             	mov    %cx,(%eax)
404288:	eb 0c                	jmp    0x404296
40428a:	50                   	push   %eax
40428b:	8d 45 ee             	lea    -0x12(%ebp),%eax
40428e:	50                   	push   %eax
40428f:	e8 e4 1f 00 00       	call   0x406278
404294:	59                   	pop    %ecx
404295:	59                   	pop    %ecx
404296:	8d 4d c3             	lea    -0x3d(%ebp),%ecx
404299:	51                   	push   %ecx
40429a:	8d 4d ee             	lea    -0x12(%ebp),%ecx
40429d:	51                   	push   %ecx
40429e:	50                   	push   %eax
40429f:	8b ce                	mov    %esi,%ecx
4042a1:	e8 b8 d3 ff ff       	call   0x40165e
4042a6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4042aa:	c7 45 bc 01 00 00 00 	movl   $0x1,-0x44(%ebp)
4042b1:	8b c6                	mov    %esi,%eax
4042b3:	e8 70 b7 03 00       	call   0x43fa28
4042b8:	c3                   	ret
4042b9:	55                   	push   %ebp
4042ba:	8b ec                	mov    %esp,%ebp
4042bc:	66 8b 45 08          	mov    0x8(%ebp),%ax
4042c0:	66 83 f8 7a          	cmp    $0x7a,%ax
4042c4:	77 10                	ja     0x4042d6
4042c6:	0f b6 c0             	movzbl %al,%eax
4042c9:	80 b8 78 4a 49 00 00 	cmpb   $0x0,0x494a78(%eax)
4042d0:	74 04                	je     0x4042d6
4042d2:	b0 01                	mov    $0x1,%al
4042d4:	5d                   	pop    %ebp
4042d5:	c3                   	ret
4042d6:	32 c0                	xor    %al,%al
4042d8:	5d                   	pop    %ebp