405e9f:	50                   	push   %eax
405ea0:	ff 75 08             	push   0x8(%ebp)
405ea3:	e8 d8 07 00 00       	call   0x406680
405ea8:	b8 9c 02 00 00       	mov    $0x29c,%eax
405ead:	5f                   	pop    %edi
405eae:	5e                   	pop    %esi
405eaf:	5d                   	pop    %ebp
405eb0:	c2 10 00             	ret    $0x10
405eb3:	8b ff                	mov    %edi,%edi
405eb5:	55                   	push   %ebp
405eb6:	8b ec                	mov    %esp,%ebp
405eb8:	ff 75 04             	push   0x4(%ebp)
405ebb:	33 d2                	xor    %edx,%edx
405ebd:	51                   	push   %ecx
405ebe:	51                   	push   %ecx
405ebf:	6a 00                	push   $0x0
405ec1:	33 c9                	xor    %ecx,%ecx
405ec3:	e8 b3 ff ff ff       	call   0x405e7b
405ec8:	85 c0                	test   %eax,%eax
405eca:	7e 08                	jle    0x405ed4
405ecc:	0f b7 c0             	movzwl %ax,%eax
405ecf:	0d 00 00 07 80       	or     $0x80070000,%eax
405ed4:	5d                   	pop    %ebp
405ed5:	c3                   	ret
405ed6:	8b ff                	mov    %edi,%edi
405ed8:	55                   	push   %ebp
405ed9:	8b ec                	mov    %esp,%ebp
405edb:	8b 45 0c             	mov    0xc(%ebp),%eax
405ede:	56                   	push   %esi
405edf:	33 f6                	xor    %esi,%esi
405ee1:	85 c0                	test   %eax,%eax
405ee3:	74 07                	je     0x405eec
405ee5:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
405eea:	76 05                	jbe    0x405ef1
405eec:	be 57 00 07 80       	mov    $0x80070057,%esi
405ef1:	85 f6                	test   %esi,%esi
405ef3:	78 36                	js     0x405f2b
405ef5:	53                   	push   %ebx
405ef6:	8b 5d 08             	mov    0x8(%ebp),%ebx
405ef9:	8d 4d 14             	lea    0x14(%ebp),%ecx
405efc:	57                   	push   %edi
405efd:	51                   	push   %ecx
405efe:	ff 75 10             	push   0x10(%ebp)
405f01:	8d 78 ff             	lea    -0x1(%eax),%edi
405f04:	33 f6                	xor    %esi,%esi
405f06:	57                   	push   %edi
405f07:	50                   	push   %eax
405f08:	53                   	push   %ebx
405f09:	ff 15 e0 b2 41 00    	call   *0x41b2e0
405f0f:	83 c4 14             	add    $0x14,%esp
405f12:	85 c0                	test   %eax,%eax
405f14:	78 08                	js     0x405f1e
405f16:	3b c7                	cmp    %edi,%eax
405f18:	77 04                	ja     0x405f1e
405f1a:	75 0b                	jne    0x405f27
405f1c:	eb 05                	jmp    0x405f23
405f1e:	be 7a 00 07 80       	mov    $0x8007007a,%esi
405f23:	c6 04 1f 00          	movb   $0x0,(%edi,%ebx,1)
405f27:	5f                   	pop    %edi
405f28:	5b                   	pop    %ebx
405f29:	eb 0a                	jmp    0x405f35
405f2b:	85 c0                	test   %eax,%eax
405f2d:	74 06                	je     0x405f35
405f2f:	8b 4d 08             	mov    0x8(%ebp),%ecx
405f32:	c6 01 00             	movb   $0x0,(%ecx)
405f35:	8b c6                	mov    %esi,%eax
405f37:	5e                   	pop    %esi
405f38:	5d                   	pop    %ebp
405f39:	c3                   	ret
405f3a:	85 c9                	test   %ecx,%ecx
405f3c:	75 04                	jne    0x405f42
405f3e:	33 c0                	xor    %eax,%eax
405f40:	40                   	inc    %eax
405f41:	c3                   	ret
405f42:	8d 51 01             	lea    0x1(%ecx),%edx
405f45:	8a 01                	mov    (%ecx),%al
405f47:	41                   	inc    %ecx
405f48:	84 c0                	test   %al,%al
405f4a:	75 f9                	jne    0x405f45
405f4c:	2b ca                	sub    %edx,%ecx
405f4e:	8d 41 01             	lea    0x1(%ecx),%eax
405f51:	c3                   	ret
405f52:	85 c9                	test   %ecx,%ecx
405f54:	75 04                	jne    0x405f5a
405f56:	6a 02                	push   $0x2
405f58:	58                   	pop    %eax
405f59:	c3                   	ret
405f5a:	8d 51 02             	lea    0x2(%ecx),%edx
405f5d:	66 8b 01             	mov    (%ecx),%ax
405f60:	83 c1 02             	add    $0x2,%ecx
405f63:	66 85 c0             	test   %ax,%ax
405f66:	75 f5                	jne    0x405f5d
405f68:	2b ca                	sub    %edx,%ecx
405f6a:	d1 f9                	sar    $1,%ecx
405f6c:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
405f73:	c3                   	ret
405f74:	80 3d 4c 97 41 00 00 	cmpb   $0x0,0x41974c
405f7b:	53                   	push   %ebx
405f7c:	75 23                	jne    0x405fa1
405f7e:	56                   	push   %esi
405f7f:	8b 35 38 97 41 00    	mov    0x419738,%esi
405f85:	33 db                	xor    %ebx,%ebx
405f87:	85 f6                	test   %esi,%esi
405f89:	74 0f                	je     0x405f9a
405f8b:	8b ce                	mov    %esi,%ecx
405f8d:	ff 15 90 b3 41 00    	call   *0x41b390
405f93:	ff d6                	call   *%esi
405f95:	0f b6 c0             	movzbl %al,%eax
405f98:	eb 02                	jmp    0x405f9c
405f9a:	8b c3                	mov    %ebx,%eax
405f9c:	5e                   	pop    %esi
405f9d:	85 c0                	test   %eax,%eax
405f9f:	74 02                	je     0x405fa3
405fa1:	b3 01                	mov    $0x1,%bl
405fa3:	8a c3                	mov    %bl,%al
405fa5:	5b                   	pop    %ebx
405fa6:	c3                   	ret
405fa7:	8b ff                	mov    %edi,%edi
405fa9:	55                   	push   %ebp
405faa:	8b ec                	mov    %esp,%ebp
405fac:	51                   	push   %ecx
405fad:	53                   	push   %ebx
405fae:	8b 5d 08             	mov    0x8(%ebp),%ebx
405fb1:	8b c1                	mov    %ecx,%eax
405fb3:	56                   	push   %esi
405fb4:	57                   	push   %edi
405fb5:	6a 14                	push   $0x14
405fb7:	59                   	pop    %ecx
405fb8:	8b f8                	mov    %eax,%edi
405fba:	89 45 fc             	mov    %eax,-0x4(%ebp)
405fbd:	8b f3                	mov    %ebx,%esi
405fbf:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
405fc1:	8b 4b 40             	mov    0x40(%ebx),%ecx
405fc4:	e8 89 ff ff ff       	call   0x405f52
405fc9:	8b 4b 34             	mov    0x34(%ebx),%ecx
405fcc:	8b f0                	mov    %eax,%esi
405fce:	e8 7f ff ff ff       	call   0x405f52
405fd3:	8b 4b 0c             	mov    0xc(%ebx),%ecx
405fd6:	03 f0                	add    %eax,%esi
405fd8:	e8 75 ff ff ff       	call   0x405f52
405fdd:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
405fe0:	03 f0                	add    %eax,%esi
405fe2:	e8 53 ff ff ff       	call   0x405f3a
405fe7:	8b 4b 30             	mov    0x30(%ebx),%ecx
405fea:	03 f0                	add    %eax,%esi
405fec:	e8 49 ff ff ff       	call   0x405f3a
405ff1:	8b 4b 28             	mov    0x28(%ebx),%ecx
405ff4:	03 f0                	add    %eax,%esi
405ff6:	e8 3f ff ff ff       	call   0x405f3a
405ffb:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
405ffe:	03 f0                	add    %eax,%esi
406000:	e8 35 ff ff ff       	call   0x405f3a
406005:	8b 4b 18             	mov    0x18(%ebx),%ecx
406008:	03 f0                	add    %eax,%esi
40600a:	e8 2b ff ff ff       	call   0x405f3a
40600f:	8b 4b 14             	mov    0x14(%ebx),%ecx
406012:	03 f0                	add    %eax,%esi
406014:	e8 21 ff ff ff       	call   0x405f3a
406019:	8b 4b 44             	mov    0x44(%ebx),%ecx
40601c:	03 f0                	add    %eax,%esi
40601e:	e8 17 ff ff ff       	call   0x405f3a
406023:	8b 55 fc             	mov    -0x4(%ebp),%edx
406026:	03 f0                	add    %eax,%esi
406028:	8d 7a 50             	lea    0x50(%edx),%edi
40602b:	8b 07                	mov    (%edi),%eax
40602d:	85 c0                	test   %eax,%eax
40602f:	74 0a                	je     0x40603b
406031:	83 38 01             	cmpl   $0x1,(%eax)
406034:	75 05                	jne    0x40603b
406036:	39 72 54             	cmp    %esi,0x54(%edx)
406039:	73 14                	jae    0x40604f
40603b:	8b cf                	mov    %edi,%ecx
40603d:	e8 c2 fb ff ff       	call   0x405c04
406042:	56                   	push   %esi
406043:	6a 00                	push   $0x0
406045:	8b cf                	mov    %edi,%ecx
406047:	e8 e6 fb ff ff       	call   0x405c32
40604c:	8b 55 fc             	mov    -0x4(%ebp),%edx
40604f:	8b 37                	mov    (%edi),%esi
406051:	8b 4f 04             	mov    0x4(%edi),%ecx
406054:	8d 46 04             	lea    0x4(%esi),%eax
406057:	f7 de                	neg    %esi
406059:	1b f6                	sbb    %esi,%esi
40605b:	23 f0                	and    %eax,%esi
40605d:	8b fe                	mov    %esi,%edi
40605f:	f7 df                	neg    %edi
406061:	1b ff                	sbb    %edi,%edi
406063:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
406066:	23 f8                	and    %eax,%edi
406068:	85 f6                	test   %esi,%esi
40606a:	0f 84 b1 00 00 00    	je     0x406121
406070:	8d 42 0c             	lea    0xc(%edx),%eax
406073:	8b ce                	mov    %esi,%ecx
406075:	50                   	push   %eax
406076:	ff 73 0c             	push   0xc(%ebx)
406079:	8b d7                	mov    %edi,%edx
40607b:	e8 5c 18 00 00       	call   0x4078dc
406080:	8b 75 fc             	mov    -0x4(%ebp),%esi
406083:	8b d7                	mov    %edi,%edx
406085:	8d 4e 14             	lea    0x14(%esi),%ecx
406088:	51                   	push   %ecx
406089:	ff 73 14             	push   0x14(%ebx)
40608c:	8b c8                	mov    %eax,%ecx
40608e:	e8 b3 18 00 00       	call   0x407946
406093:	8d 4e 18             	lea    0x18(%esi),%ecx
406096:	8b d7                	mov    %edi,%edx
406098:	51                   	push   %ecx
406099:	ff 73 18             	push   0x18(%ebx)
40609c:	8b c8                	mov    %eax,%ecx
40609e:	e8 a3 18 00 00       	call   0x407946
4060a3:	8d 4e 1c             	lea    0x1c(%esi),%ecx
4060a6:	8b d7                	mov    %edi,%edx
4060a8:	51                   	push   %ecx
4060a9:	ff 73 1c             	push   0x1c(%ebx)
4060ac:	8b c8                	mov    %eax,%ecx
4060ae:	e8 93 18 00 00       	call   0x407946
4060b3:	8d 4e 28             	lea    0x28(%esi),%ecx
4060b6:	8b d7                	mov    %edi,%edx
4060b8:	51                   	push   %ecx
4060b9:	ff 73 28             	push   0x28(%ebx)
4060bc:	8b c8                	mov    %eax,%ecx
4060be:	e8 83 18 00 00       	call   0x407946
4060c3:	8d 4e 44             	lea    0x44(%esi),%ecx
4060c6:	8b d7                	mov    %edi,%edx
4060c8:	51                   	push   %ecx
4060c9:	ff 73 44             	push   0x44(%ebx)
4060cc:	8b c8                	mov    %eax,%ecx
4060ce:	e8 73 18 00 00       	call   0x407946
4060d3:	8d 4e 3c             	lea    0x3c(%esi),%ecx
4060d6:	8b d7                	mov    %edi,%edx
4060d8:	51                   	push   %ecx
4060d9:	ff 73 3c             	push   0x3c(%ebx)
4060dc:	8b c8                	mov    %eax,%ecx
4060de:	e8 63 18 00 00       	call   0x407946
4060e3:	8d 4e 40             	lea    0x40(%esi),%ecx
4060e6:	8b d7                	mov    %edi,%edx
4060e8:	51                   	push   %ecx
4060e9:	ff 73 40             	push   0x40(%ebx)
4060ec:	8b c8                	mov    %eax,%ecx
4060ee:	e8 e9 17 00 00       	call   0x4078dc
4060f3:	8d 4e 30             	lea    0x30(%esi),%ecx
4060f6:	8b d7                	mov    %edi,%edx
4060f8:	51                   	push   %ecx
4060f9:	ff 73 30             	push   0x30(%ebx)
4060fc:	8b c8                	mov    %eax,%ecx
4060fe:	e8 43 18 00 00       	call   0x407946
406103:	8d 4e 34             	lea    0x34(%esi),%ecx
406106:	8b d7                	mov    %edi,%edx
406108:	51                   	push   %ecx
406109:	ff 73 34             	push   0x34(%ebx)
40610c:	8b c8                	mov    %eax,%ecx
40610e:	e8 c9 17 00 00       	call   0x4078dc
406113:	2b f8                	sub    %eax,%edi
406115:	57                   	push   %edi
406116:	6a 00                	push   $0x0
406118:	50                   	push   %eax
406119:	e8 43 e0 00 00       	call   0x414161
40611e:	83 c4 0c             	add    $0xc,%esp
406121:	5f                   	pop    %edi
406122:	5e                   	pop    %esi
406123:	5b                   	pop    %ebx
406124:	c9                   	leave
406125:	c2 04 00             	ret    $0x4
406128:	8b ff                	mov    %edi,%edi
40612a:	55                   	push   %ebp
40612b:	8b ec                	mov    %esp,%ebp
40612d:	56                   	push   %esi
40612e:	57                   	push   %edi
40612f:	8b f1                	mov    %ecx,%esi
406131:	ff 15 d8 b2 41 00    	call   *0x41b2d8
406137:	ff 75 08             	push   0x8(%ebp)
40613a:	8d 4e 0c             	lea    0xc(%esi),%ecx
40613d:	c7 06 4c 15 40 00    	movl   $0x40154c,(%esi)
406143:	33 ff                	xor    %edi,%edi
406145:	89 79 50             	mov    %edi,0x50(%ecx)
406148:	89 79 54             	mov    %edi,0x54(%ecx)
40614b:	e8 57 fe ff ff       	call   0x405fa7
406150:	89 7e 64             	mov    %edi,0x64(%esi)
406153:	8b c6                	mov    %esi,%eax
406155:	89 7e 68             	mov    %edi,0x68(%esi)
406158:	5f                   	pop    %edi
406159:	5e                   	pop    %esi
40615a:	5d                   	pop    %ebp
40615b:	c2 04 00             	ret    $0x4
40615e:	cc                   	int3
40615f:	cc                   	int3
406160:	8b ff                	mov    %edi,%edi
406162:	55                   	push   %ebp
406163:	8b ec                	mov    %esp,%ebp
406165:	b8 04 14 00 00       	mov    $0x1404,%eax
40616a:	e8 c1 df 00 00       	call   0x414130
40616f:	a1 18 51 41 00       	mov    0x415118,%eax
406174:	33 c5                	xor    %ebp,%eax
406176:	89 45 fc             	mov    %eax,-0x4(%ebp)
406179:	56                   	push   %esi
40617a:	8d 71 64             	lea    0x64(%ecx),%esi
40617d:	8b 06                	mov    (%esi),%eax
40617f:	85 c0                	test   %eax,%eax
406181:	75 5a                	jne    0x4061dd
406183:	8d 41 0c             	lea    0xc(%ecx),%eax
406186:	ba 00 08 00 00       	mov    $0x800,%edx
40618b:	50                   	push   %eax
40618c:	8d 8d fc eb ff ff    	lea    -0x1404(%ebp),%ecx
406192:	e8 ff f7 ff ff       	call   0x405996
406197:	8d 85 fc eb ff ff    	lea    -0x1404(%ebp),%eax
40619d:	50                   	push   %eax
40619e:	68 c4 26 40 00       	push   $0x4026c4
4061a3:	8d 85 fc fb ff ff    	lea    -0x404(%ebp),%eax
4061a9:	68 00 04 00 00       	push   $0x400
4061ae:	50                   	push   %eax
4061af:	e8 22 fd ff ff       	call   0x405ed6
4061b4:	8d 8d fc fb ff ff    	lea    -0x404(%ebp),%ecx
4061ba:	83 c4 10             	add    $0x10,%esp
4061bd:	8d 51 01             	lea    0x1(%ecx),%edx
4061c0:	8a 01                	mov    (%ecx),%al
4061c2:	41                   	inc    %ecx
4061c3:	84 c0                	test   %al,%al
4061c5:	75 f9                	jne    0x4061c0
4061c7:	2b ca                	sub    %edx,%ecx
4061c9:	8d 41 01             	lea    0x1(%ecx),%eax
4061cc:	8b ce                	mov    %esi,%ecx
4061ce:	50                   	push   %eax
4061cf:	8d 85 fc fb ff ff    	lea    -0x404(%ebp),%eax
4061d5:	50                   	push   %eax
4061d6:	e8 57 fa ff ff       	call   0x405c32
4061db:	8b 06                	mov    (%esi),%eax
4061dd:	8d 48 04             	lea    0x4(%eax),%ecx
4061e0:	f7 d8                	neg    %eax
4061e2:	5e                   	pop    %esi
4061e3:	1b c0                	sbb    %eax,%eax
4061e5:	23 c1                	and    %ecx,%eax
4061e7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4061ea:	33 cd                	xor    %ebp,%ecx
4061ec:	e8 ef d6 00 00       	call   0x4138e0
4061f1:	c9                   	leave
4061f2:	c3                   	ret
4061f3:	cc                   	int3
4061f4:	cc                   	int3
4061f5:	cc                   	int3
4061f6:	cc                   	int3
4061f7:	cc                   	int3
4061f8:	cc                   	int3
4061f9:	cc                   	int3
4061fa:	cc                   	int3
4061fb:	cc                   	int3
4061fc:	cc                   	int3
4061fd:	cc                   	int3
4061fe:	cc                   	int3
4061ff:	cc                   	int3
406200:	8b ff                	mov    %edi,%edi