405e49:	8b ec                	mov    %esp,%ebp
405e4b:	8b 45 08             	mov    0x8(%ebp),%eax
405e4e:	83 c0 04             	add    $0x4,%eax
405e51:	50                   	push   %eax
405e52:	e8 51 b5 ff ff       	call   0x4013a8
405e57:	5d                   	pop    %ebp
405e58:	c2 04 00             	ret    $0x4
405e5b:	90                   	nop
405e5c:	55                   	push   %ebp
405e5d:	8b ec                	mov    %esp,%ebp
405e5f:	53                   	push   %ebx
405e60:	56                   	push   %esi
405e61:	8b 5d 08             	mov    0x8(%ebp),%ebx
405e64:	8d 43 04             	lea    0x4(%ebx),%eax
405e67:	50                   	push   %eax
405e68:	e8 43 b5 ff ff       	call   0x4013b0
405e6d:	8b f0                	mov    %eax,%esi
405e6f:	85 f6                	test   %esi,%esi
405e71:	75 09                	jne    0x405e7c
405e73:	b2 01                	mov    $0x1,%dl
405e75:	8b c3                	mov    %ebx,%eax
405e77:	8b 08                	mov    (%eax),%ecx
405e79:	ff 51 fc             	call   *-0x4(%ecx)
405e7c:	8b c6                	mov    %esi,%eax
405e7e:	5e                   	pop    %esi
405e7f:	5b                   	pop    %ebx
405e80:	5d                   	pop    %ebp
405e81:	c2 04 00             	ret    $0x4
405e84:	55                   	push   %ebp
405e85:	8b ec                	mov    %esp,%ebp
405e87:	83 c4 f8             	add    $0xfffffff8,%esp
405e8a:	53                   	push   %ebx
405e8b:	56                   	push   %esi
405e8c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405e8f:	89 55 fc             	mov    %edx,-0x4(%ebp)
405e92:	33 d2                	xor    %edx,%edx
405e94:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
405e98:	0f 84 b8 00 00 00    	je     0x405f56
405e9e:	33 f6                	xor    %esi,%esi
405ea0:	33 c9                	xor    %ecx,%ecx
405ea2:	85 c0                	test   %eax,%eax
405ea4:	0f 84 87 00 00 00    	je     0x405f31
405eaa:	eb 6c                	jmp    0x405f18
405eac:	8b 55 f8             	mov    -0x8(%ebp),%edx
405eaf:	0f b7 14 4a          	movzwl (%edx,%ecx,2),%edx
405eb3:	41                   	inc    %ecx
405eb4:	83 fa 7f             	cmp    $0x7f,%edx
405eb7:	77 06                	ja     0x405ebf
405eb9:	88 14 30             	mov    %dl,(%eax,%esi,1)
405ebc:	46                   	inc    %esi
405ebd:	eb 59                	jmp    0x405f18
405ebf:	81 fa ff 07 00 00    	cmp    $0x7ff,%edx
405ec5:	76 31                	jbe    0x405ef8
405ec7:	8d 5e 03             	lea    0x3(%esi),%ebx
405eca:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
405ecd:	77 53                	ja     0x405f22
405ecf:	8b da                	mov    %edx,%ebx
405ed1:	c1 eb 0c             	shr    $0xc,%ebx
405ed4:	80 cb e0             	or     $0xe0,%bl
405ed7:	88 1c 30             	mov    %bl,(%eax,%esi,1)
405eda:	8b da                	mov    %edx,%ebx
405edc:	c1 eb 06             	shr    $0x6,%ebx
405edf:	80 e3 3f             	and    $0x3f,%bl
405ee2:	80 cb 80             	or     $0x80,%bl
405ee5:	88 5c 30 01          	mov    %bl,0x1(%eax,%esi,1)
405ee9:	80 e2 3f             	and    $0x3f,%dl
405eec:	80 ca 80             	or     $0x80,%dl
405eef:	88 54 30 02          	mov    %dl,0x2(%eax,%esi,1)
405ef3:	83 c6 03             	add    $0x3,%esi
405ef6:	eb 20                	jmp    0x405f18
405ef8:	8d 5e 02             	lea    0x2(%esi),%ebx
405efb:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
405efe:	77 22                	ja     0x405f22
405f00:	8b da                	mov    %edx,%ebx
405f02:	c1 eb 06             	shr    $0x6,%ebx
405f05:	80 cb c0             	or     $0xc0,%bl
405f08:	88 1c 30             	mov    %bl,(%eax,%esi,1)
405f0b:	80 e2 3f             	and    $0x3f,%dl
405f0e:	80 ca 80             	or     $0x80,%dl
405f11:	88 54 30 01          	mov    %dl,0x1(%eax,%esi,1)
405f15:	83 c6 02             	add    $0x2,%esi
405f18:	3b 4d 08             	cmp    0x8(%ebp),%ecx
405f1b:	73 05                	jae    0x405f22
405f1d:	3b 75 fc             	cmp    -0x4(%ebp),%esi
405f20:	72 8a                	jb     0x405eac
405f22:	3b 75 fc             	cmp    -0x4(%ebp),%esi
405f25:	72 04                	jb     0x405f2b
405f27:	8b 75 fc             	mov    -0x4(%ebp),%esi
405f2a:	4e                   	dec    %esi
405f2b:	c6 04 30 00          	movb   $0x0,(%eax,%esi,1)
405f2f:	eb 22                	jmp    0x405f53
405f31:	3b 4d 08             	cmp    0x8(%ebp),%ecx
405f34:	73 1d                	jae    0x405f53
405f36:	8b 45 f8             	mov    -0x8(%ebp),%eax
405f39:	0f b7 14 48          	movzwl (%eax,%ecx,2),%edx
405f3d:	41                   	inc    %ecx
405f3e:	83 fa 7f             	cmp    $0x7f,%edx
405f41:	76 0a                	jbe    0x405f4d
405f43:	81 fa ff 07 00 00    	cmp    $0x7ff,%edx
405f49:	76 01                	jbe    0x405f4c
405f4b:	46                   	inc    %esi
405f4c:	46                   	inc    %esi
405f4d:	46                   	inc    %esi
405f4e:	3b 4d 08             	cmp    0x8(%ebp),%ecx
405f51:	72 e3                	jb     0x405f36
405f53:	8d 56 01             	lea    0x1(%esi),%edx
405f56:	8b c2                	mov    %edx,%eax
405f58:	5e                   	pop    %esi
405f59:	5b                   	pop    %ebx
405f5a:	59                   	pop    %ecx
405f5b:	59                   	pop    %ecx
405f5c:	5d                   	pop    %ebp
405f5d:	c2 04 00             	ret    $0x4
405f60:	55                   	push   %ebp
405f61:	8b ec                	mov    %esp,%ebp
405f63:	83 c4 f0             	add    $0xfffffff0,%esp
405f66:	53                   	push   %ebx
405f67:	56                   	push   %esi
405f68:	89 4d f4             	mov    %ecx,-0xc(%ebp)
405f6b:	89 55 f8             	mov    %edx,-0x8(%ebp)
405f6e:	89 45 fc             	mov    %eax,-0x4(%ebp)
405f71:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
405f75:	75 0a                	jne    0x405f81
405f77:	33 c0                	xor    %eax,%eax
405f79:	89 45 f0             	mov    %eax,-0x10(%ebp)
405f7c:	e9 09 01 00 00       	jmp    0x40608a
405f81:	c7 45 f0 ff ff ff ff 	movl   $0xffffffff,-0x10(%ebp)
405f88:	33 c0                	xor    %eax,%eax
405f8a:	33 f6                	xor    %esi,%esi
405f8c:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
405f90:	0f 84 a9 00 00 00    	je     0x40603f
405f96:	e9 82 00 00 00       	jmp    0x40601d
405f9b:	8b 55 f4             	mov    -0xc(%ebp),%edx
405f9e:	33 c9                	xor    %ecx,%ecx
405fa0:	8a 0c 32             	mov    (%edx,%esi,1),%cl
405fa3:	46                   	inc    %esi
405fa4:	f6 c1 80             	test   $0x80,%cl
405fa7:	74 6c                	je     0x406015
405fa9:	3b 75 08             	cmp    0x8(%ebp),%esi
405fac:	0f 83 d8 00 00 00    	jae    0x40608a
405fb2:	83 e1 3f             	and    $0x3f,%ecx
405fb5:	f6 c1 20             	test   $0x20,%cl
405fb8:	74 2e                	je     0x405fe8
405fba:	8b 55 f4             	mov    -0xc(%ebp),%edx
405fbd:	8a 14 32             	mov    (%edx,%esi,1),%dl
405fc0:	46                   	inc    %esi
405fc1:	8b da                	mov    %edx,%ebx
405fc3:	80 e3 c0             	and    $0xc0,%bl
405fc6:	80 fb 80             	cmp    $0x80,%bl
405fc9:	0f 85 bb 00 00 00    	jne    0x40608a
405fcf:	3b 75 08             	cmp    0x8(%ebp),%esi
405fd2:	0f 83 b2 00 00 00    	jae    0x40608a
405fd8:	80 e2 3f             	and    $0x3f,%dl
405fdb:	81 e2 ff 00 00 00    	and    $0xff,%edx
405fe1:	c1 e1 06             	shl    $0x6,%ecx
405fe4:	0b d1                	or     %ecx,%edx
405fe6:	8b ca                	mov    %edx,%ecx
405fe8:	8b 55 f4             	mov    -0xc(%ebp),%edx
405feb:	8a 14 32             	mov    (%edx,%esi,1),%dl
405fee:	46                   	inc    %esi
405fef:	8b da                	mov    %edx,%ebx
405ff1:	80 e3 c0             	and    $0xc0,%bl
405ff4:	80 fb 80             	cmp    $0x80,%bl
405ff7:	0f 85 8d 00 00 00    	jne    0x40608a
405ffd:	80 e2 3f             	and    $0x3f,%dl
406000:	81 e2 ff 00 00 00    	and    $0xff,%edx
406006:	c1 e1 06             	shl    $0x6,%ecx
406009:	66 0b d1             	or     %cx,%dx
40600c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40600f:	66 89 14 41          	mov    %dx,(%ecx,%eax,2)
406013:	eb 07                	jmp    0x40601c
406015:	8b 55 fc             	mov    -0x4(%ebp),%edx
406018:	66 89 0c 42          	mov    %cx,(%edx,%eax,2)
40601c:	40                   	inc    %eax
40601d:	3b 75 08             	cmp    0x8(%ebp),%esi
406020:	73 09                	jae    0x40602b
406022:	3b 45 f8             	cmp    -0x8(%ebp),%eax
406025:	0f 82 70 ff ff ff    	jb     0x405f9b
40602b:	3b 45 f8             	cmp    -0x8(%ebp),%eax
40602e:	72 04                	jb     0x406034
406030:	8b 45 f8             	mov    -0x8(%ebp),%eax
406033:	48                   	dec    %eax
406034:	8b 55 fc             	mov    -0x4(%ebp),%edx
406037:	66 c7 04 42 00 00    	movw   $0x0,(%edx,%eax,2)
40603d:	eb 47                	jmp    0x406086
40603f:	3b 75 08             	cmp    0x8(%ebp),%esi
406042:	73 42                	jae    0x406086
406044:	8b 55 f4             	mov    -0xc(%ebp),%edx
406047:	8a 14 32             	mov    (%edx,%esi,1),%dl
40604a:	46                   	inc    %esi
40604b:	f6 c2 80             	test   $0x80,%dl
40604e:	74 30                	je     0x406080
406050:	3b 75 08             	cmp    0x8(%ebp),%esi
406053:	73 35                	jae    0x40608a
406055:	80 e2 3f             	and    $0x3f,%dl
406058:	f6 c2 20             	test   $0x20,%dl
40605b:	74 14                	je     0x406071
40605d:	8b 55 f4             	mov    -0xc(%ebp),%edx
406060:	8a 14 32             	mov    (%edx,%esi,1),%dl
406063:	46                   	inc    %esi
406064:	80 e2 c0             	and    $0xc0,%dl
406067:	80 fa 80             	cmp    $0x80,%dl
40606a:	75 1e                	jne    0x40608a
40606c:	3b 75 08             	cmp    0x8(%ebp),%esi
40606f:	73 19                	jae    0x40608a
406071:	8b 55 f4             	mov    -0xc(%ebp),%edx
406074:	8a 14 32             	mov    (%edx,%esi,1),%dl
406077:	46                   	inc    %esi
406078:	80 e2 c0             	and    $0xc0,%dl
40607b:	80 fa 80             	cmp    $0x80,%dl
40607e:	75 0a                	jne    0x40608a
406080:	40                   	inc    %eax
406081:	3b 75 08             	cmp    0x8(%ebp),%esi
406084:	72 be                	jb     0x406044
406086:	40                   	inc    %eax
406087:	89 45 f0             	mov    %eax,-0x10(%ebp)
40608a:	8b 45 f0             	mov    -0x10(%ebp),%eax
40608d:	5e                   	pop    %esi
40608e:	5b                   	pop    %ebx
40608f:	8b e5                	mov    %ebp,%esp
406091:	5d                   	pop    %ebp
406092:	c2 04 00             	ret    $0x4
406095:	8d 40 00             	lea    0x0(%eax),%eax
406098:	55                   	push   %ebp
406099:	8b ec                	mov    %esp,%ebp
40609b:	6a 00                	push   $0x0
40609d:	53                   	push   %ebx
40609e:	56                   	push   %esi
40609f:	8b f2                	mov    %edx,%esi
4060a1:	8b d8                	mov    %eax,%ebx
4060a3:	33 c0                	xor    %eax,%eax
4060a5:	55                   	push   %ebp
4060a6:	68 37 61 40 00       	push   $0x406137
4060ab:	64 ff 30             	push   %fs:(%eax)
4060ae:	64 89 20             	mov    %esp,%fs:(%eax)
4060b1:	8b c6                	mov    %esi,%eax
4060b3:	e8 ac e0 ff ff       	call   0x404164
4060b8:	8b c3                	mov    %ebx,%eax
4060ba:	33 d2                	xor    %edx,%edx
4060bc:	e8 27 e9 ff ff       	call   0x4049e8
4060c1:	74 5e                	je     0x406121
4060c3:	8b c3                	mov    %ebx,%eax
4060c5:	e8 12 e9 ff ff       	call   0x4049dc
4060ca:	8d 14 40             	lea    (%eax,%eax,2),%edx
4060cd:	8d 45 fc             	lea    -0x4(%ebp),%eax
4060d0:	e8 db e6 ff ff       	call   0x4047b0
4060d5:	8b c3                	mov    %ebx,%eax
4060d7:	e8 00 e9 ff ff       	call   0x4049dc
4060dc:	50                   	push   %eax
4060dd:	8b 45 fc             	mov    -0x4(%ebp),%eax
4060e0:	e8 3f e3 ff ff       	call   0x404424
4060e5:	40                   	inc    %eax
4060e6:	50                   	push   %eax
4060e7:	8b c3                	mov    %ebx,%eax
4060e9:	e8 de e8 ff ff       	call   0x4049cc
4060ee:	50                   	push   %eax
4060ef:	8b 45 fc             	mov    -0x4(%ebp),%eax
4060f2:	e8 2d e5 ff ff       	call   0x404624
4060f7:	59                   	pop    %ecx
4060f8:	5a                   	pop    %edx
4060f9:	e8 86 fd ff ff       	call   0x405e84
4060fe:	85 c0                	test   %eax,%eax
406100:	7e 0d                	jle    0x40610f
406102:	8b d0                	mov    %eax,%edx
406104:	4a                   	dec    %edx
406105:	8d 45 fc             	lea    -0x4(%ebp),%eax
406108:	e8 a3 e6 ff ff       	call   0x4047b0
40610d:	eb 08                	jmp    0x406117
40610f:	8d 45 fc             	lea    -0x4(%ebp),%eax
406112:	e8 4d e0 ff ff       	call   0x404164
406117:	8b c6                	mov    %esi,%eax
406119:	8b 55 fc             	mov    -0x4(%ebp),%edx
40611c:	e8 97 e0 ff ff       	call   0x4041b8
406121:	33 c0                	xor    %eax,%eax
406123:	5a                   	pop    %edx
406124:	59                   	pop    %ecx
406125:	59                   	pop    %ecx
406126:	64 89 10             	mov    %edx,%fs:(%eax)
406129:	68 3e 61 40 00       	push   $0x40613e
40612e:	8d 45 fc             	lea    -0x4(%ebp),%eax
406131:	e8 2e e0 ff ff       	call   0x404164
406136:	c3                   	ret
406137:	e9 2c da ff ff       	jmp    0x403b68
40613c:	eb f0                	jmp    0x40612e
40613e:	5e                   	pop    %esi
40613f:	5b                   	pop    %ebx
406140:	59                   	pop    %ecx
406141:	5d                   	pop    %ebp
406142:	c3                   	ret
406143:	90                   	nop
406144:	55                   	push   %ebp
406145:	8b ec                	mov    %esp,%ebp
406147:	6a 00                	push   $0x0
406149:	53                   	push   %ebx
40614a:	56                   	push   %esi
40614b:	8b f2                	mov    %edx,%esi
40614d:	8b d8                	mov    %eax,%ebx
40614f:	33 c0                	xor    %eax,%eax
406151:	55                   	push   %ebp
406152:	68 db 61 40 00       	push   $0x4061db
406157:	64 ff 30             	push   %fs:(%eax)
40615a:	64 89 20             	mov    %esp,%fs:(%eax)
40615d:	8b c6                	mov    %esi,%eax
40615f:	e8 0c e7 ff ff       	call   0x404870
406164:	85 db                	test   %ebx,%ebx
406166:	74 5d                	je     0x4061c5
406168:	8b c3                	mov    %ebx,%eax
40616a:	e8 b5 e2 ff ff       	call   0x404424
40616f:	8b d0                	mov    %eax,%edx
406171:	8d 45 fc             	lea    -0x4(%ebp),%eax
406174:	e8 3f e9 ff ff       	call   0x404ab8
406179:	8b c3                	mov    %ebx,%eax
40617b:	e8 a4 e2 ff ff       	call   0x404424
406180:	50                   	push   %eax
406181:	8b 45 fc             	mov    -0x4(%ebp),%eax
406184:	e8 53 e8 ff ff       	call   0x4049dc
406189:	40                   	inc    %eax
40618a:	50                   	push   %eax
40618b:	8b c3                	mov    %ebx,%eax
40618d:	e8 92 e4 ff ff       	call   0x404624
406192:	50                   	push   %eax
406193:	8b 45 fc             	mov    -0x4(%ebp),%eax
406196:	e8 31 e8 ff ff       	call   0x4049cc
40619b:	59                   	pop    %ecx
40619c:	5a                   	pop    %edx
40619d:	e8 be fd ff ff       	call   0x405f60
4061a2:	85 c0                	test   %eax,%eax
4061a4:	7e 0d                	jle    0x4061b3
4061a6:	8b d0                	mov    %eax,%edx
4061a8:	4a                   	dec    %edx
4061a9:	8d 45 fc             	lea    -0x4(%ebp),%eax
4061ac:	e8 07 e9 ff ff       	call   0x404ab8
4061b1:	eb 08                	jmp    0x4061bb
4061b3:	8d 45 fc             	lea    -0x4(%ebp),%eax
4061b6:	e8 b5 e6 ff ff       	call   0x404870
4061bb:	8b c6                	mov    %esi,%eax
4061bd:	8b 55 fc             	mov    -0x4(%ebp),%edx
4061c0:	e8 e7 e6 ff ff       	call   0x4048ac
4061c5:	33 c0                	xor    %eax,%eax
4061c7:	5a                   	pop    %edx
4061c8:	59                   	pop    %ecx
4061c9:	59                   	pop    %ecx
4061ca:	64 89 10             	mov    %edx,%fs:(%eax)
4061cd:	68 e2 61 40 00       	push   $0x4061e2
4061d2:	8d 45 fc             	lea    -0x4(%ebp),%eax
4061d5:	e8 96 e6 ff ff       	call   0x404870
4061da:	c3                   	ret
4061db:	e9 88 d9 ff ff       	jmp    0x403b68
4061e0:	eb f0                	jmp    0x4061d2
4061e2:	5e                   	pop    %esi