409f34:	8b 7c 18 38          	mov    0x38(%eax,%ebx,1),%edi
409f38:	85 ff                	test   %edi,%edi
409f3a:	74 13                	je     0x409f4f
409f3c:	8b 07                	mov    (%edi),%eax
409f3e:	8b 70 04             	mov    0x4(%eax),%esi
409f41:	8b ce                	mov    %esi,%ecx
409f43:	ff 15 5c e2 43 00    	call   *0x43e25c
409f49:	8b cf                	mov    %edi,%ecx
409f4b:	ff d6                	call   *%esi
409f4d:	33 f6                	xor    %esi,%esi
409f4f:	51                   	push   %ecx
409f50:	8b cb                	mov    %ebx,%ecx
409f52:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
409f59:	e8 12 0f 00 00       	call   0x40ae70
409f5e:	88 45 d0             	mov    %al,-0x30(%ebp)
409f61:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
409f68:	84 c0                	test   %al,%al
409f6a:	0f 84 55 01 00 00    	je     0x40a0c5
409f70:	8b 03                	mov    (%ebx),%eax
409f72:	8b 40 04             	mov    0x4(%eax),%eax
409f75:	8b 44 18 30          	mov    0x30(%eax,%ebx,1),%eax
409f79:	8b 78 04             	mov    0x4(%eax),%edi
409f7c:	89 7d e8             	mov    %edi,-0x18(%ebp)
409f7f:	8b 07                	mov    (%edi),%eax
409f81:	8b 70 04             	mov    0x4(%eax),%esi
409f84:	8b ce                	mov    %esi,%ecx
409f86:	ff 15 5c e2 43 00    	call   *0x43e25c
409f8c:	8b cf                	mov    %edi,%ecx
409f8e:	ff d6                	call   *%esi
409f90:	8d 45 e4             	lea    -0x1c(%ebp),%eax
409f93:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
409f97:	50                   	push   %eax
409f98:	e8 43 05 00 00       	call   0x40a4e0
409f9d:	8b 7d e8             	mov    -0x18(%ebp),%edi
409fa0:	83 c4 04             	add    $0x4,%esp
409fa3:	89 45 e0             	mov    %eax,-0x20(%ebp)
409fa6:	85 ff                	test   %edi,%edi
409fa8:	74 29                	je     0x409fd3
409faa:	8b 17                	mov    (%edi),%edx
409fac:	8b 72 08             	mov    0x8(%edx),%esi
409faf:	8b ce                	mov    %esi,%ecx
409fb1:	ff 15 5c e2 43 00    	call   *0x43e25c
409fb7:	8b cf                	mov    %edi,%ecx
409fb9:	ff d6                	call   *%esi
409fbb:	8b f8                	mov    %eax,%edi
409fbd:	85 ff                	test   %edi,%edi
409fbf:	74 12                	je     0x409fd3
409fc1:	8b 0f                	mov    (%edi),%ecx
409fc3:	6a 01                	push   $0x1
409fc5:	8b 31                	mov    (%ecx),%esi
409fc7:	8b ce                	mov    %esi,%ecx
409fc9:	ff 15 5c e2 43 00    	call   *0x43e25c
409fcf:	8b cf                	mov    %edi,%ecx
409fd1:	ff d6                	call   *%esi
409fd3:	8b 45 dc             	mov    -0x24(%ebp),%eax
409fd6:	8b c8                	mov    %eax,%ecx
409fd8:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)
409fdf:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
409fe3:	72 02                	jb     0x409fe7
409fe5:	8b 08                	mov    (%eax),%ecx
409fe7:	33 c0                	xor    %eax,%eax
409fe9:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
409fed:	66 89 01             	mov    %ax,(%ecx)
409ff0:	8b 03                	mov    (%ebx),%eax
409ff2:	8b 40 04             	mov    0x4(%eax),%eax
409ff5:	83 7c 18 24 00       	cmpl   $0x0,0x24(%eax,%ebx,1)
409ffa:	8b 4c 18 20          	mov    0x20(%eax,%ebx,1),%ecx
409ffe:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40a001:	7c 0e                	jl     0x40a011
40a003:	7f 04                	jg     0x40a009
40a005:	85 c9                	test   %ecx,%ecx
40a007:	74 08                	je     0x40a011
40a009:	81 f9 fe ff ff 7f    	cmp    $0x7ffffffe,%ecx
40a00f:	72 07                	jb     0x40a018
40a011:	c7 45 e8 fe ff ff 7f 	movl   $0x7ffffffe,-0x18(%ebp)
40a018:	8b 7c 18 38          	mov    0x38(%eax,%ebx,1),%edi
40a01c:	8b 47 1c             	mov    0x1c(%edi),%eax
40a01f:	8b 08                	mov    (%eax),%ecx
40a021:	85 c9                	test   %ecx,%ecx
40a023:	74 0d                	je     0x40a032
40a025:	8b 47 2c             	mov    0x2c(%edi),%eax
40a028:	83 38 00             	cmpl   $0x0,(%eax)
40a02b:	7e 05                	jle    0x40a032
40a02d:	0f b7 39             	movzwl (%ecx),%edi
40a030:	eb 16                	jmp    0x40a048
40a032:	8b 07                	mov    (%edi),%eax
40a034:	8b 70 18             	mov    0x18(%eax),%esi
40a037:	8b ce                	mov    %esi,%ecx
40a039:	ff 15 5c e2 43 00    	call   *0x43e25c
40a03f:	8b cf                	mov    %edi,%ecx
40a041:	ff d6                	call   *%esi
40a043:	0f b7 c0             	movzwl %ax,%eax
40a046:	8b f8                	mov    %eax,%edi
40a048:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
40a04c:	b8 ff ff 00 00       	mov    $0xffff,%eax
40a051:	76 48                	jbe    0x40a09b
40a053:	66 3b c7             	cmp    %di,%ax
40a056:	75 07                	jne    0x40a05f
40a058:	be 01 00 00 00       	mov    $0x1,%esi
40a05d:	eb 5f                	jmp    0x40a0be
40a05f:	8b 45 e0             	mov    -0x20(%ebp),%eax
40a062:	57                   	push   %edi
40a063:	6a 48                	push   $0x48
40a065:	8b 00                	mov    (%eax),%eax
40a067:	8b 70 10             	mov    0x10(%eax),%esi
40a06a:	8b ce                	mov    %esi,%ecx
40a06c:	ff 15 5c e2 43 00    	call   *0x43e25c
40a072:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40a075:	ff d6                	call   *%esi
40a077:	84 c0                	test   %al,%al
40a079:	75 20                	jne    0x40a09b
40a07b:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40a07e:	57                   	push   %edi
40a07f:	e8 bc 0c 00 00       	call   0x40ad40
40a084:	8b 03                	mov    (%ebx),%eax
40a086:	ff 4d e8             	decl   -0x18(%ebp)
40a089:	c6 45 ef 01          	movb   $0x1,-0x11(%ebp)
40a08d:	8b 48 04             	mov    0x4(%eax),%ecx
40a090:	8b 4c 19 38          	mov    0x38(%ecx,%ebx,1),%ecx
40a094:	e8 07 0c 00 00       	call   0x40aca0
40a099:	eb a8                	jmp    0x40a043
40a09b:	33 f6                	xor    %esi,%esi
40a09d:	eb 1f                	jmp    0x40a0be
40a09f:	8b 55 d8             	mov    -0x28(%ebp),%edx
40a0a2:	6a 01                	push   $0x1
40a0a4:	6a 04                	push   $0x4
40a0a6:	8b 02                	mov    (%edx),%eax
40a0a8:	8b 48 04             	mov    0x4(%eax),%ecx
40a0ab:	03 ca                	add    %edx,%ecx
40a0ad:	e8 fe ec ff ff       	call   0x408db0
40a0b2:	b8 b8 a0 40 00       	mov    $0x40a0b8,%eax
40a0b7:	c3                   	ret
40a0b8:	8b 5d d8             	mov    -0x28(%ebp),%ebx
40a0bb:	8b 75 d4             	mov    -0x2c(%ebp),%esi
40a0be:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40a0c5:	80 7d ef 00          	cmpb   $0x0,-0x11(%ebp)
40a0c9:	8b 03                	mov    (%ebx),%eax
40a0cb:	8b 40 04             	mov    0x4(%eax),%eax
40a0ce:	c7 44 18 20 00 00 00 	movl   $0x0,0x20(%eax,%ebx,1)
40a0d5:	00
40a0d6:	c7 44 18 24 00 00 00 	movl   $0x0,0x24(%eax,%ebx,1)
40a0dd:	00
40a0de:	75 03                	jne    0x40a0e3
40a0e0:	83 ce 02             	or     $0x2,%esi
40a0e3:	8b 03                	mov    (%ebx),%eax
40a0e5:	6a 00                	push   $0x0
40a0e7:	8b 48 04             	mov    0x4(%eax),%ecx
40a0ea:	b8 04 00 00 00       	mov    $0x4,%eax
40a0ef:	03 cb                	add    %ebx,%ecx
40a0f1:	8b 51 0c             	mov    0xc(%ecx),%edx
40a0f4:	0b d6                	or     %esi,%edx
40a0f6:	33 f6                	xor    %esi,%esi
40a0f8:	39 71 38             	cmp    %esi,0x38(%ecx)
40a0fb:	0f 45 c6             	cmovne %esi,%eax
40a0fe:	0b c2                	or     %edx,%eax
40a100:	50                   	push   %eax
40a101:	e8 fa be ff ff       	call   0x406000
40a106:	c7 45 fc 05 00 00 00 	movl   $0x5,-0x4(%ebp)
40a10d:	8b 7d cc             	mov    -0x34(%ebp),%edi
40a110:	8b 07                	mov    (%edi),%eax
40a112:	8b 40 04             	mov    0x4(%eax),%eax
40a115:	8b 7c 38 38          	mov    0x38(%eax,%edi,1),%edi
40a119:	85 ff                	test   %edi,%edi
40a11b:	74 11                	je     0x40a12e
40a11d:	8b 07                	mov    (%edi),%eax
40a11f:	8b 70 08             	mov    0x8(%eax),%esi
40a122:	8b ce                	mov    %esi,%ecx
40a124:	ff 15 5c e2 43 00    	call   *0x43e25c
40a12a:	8b cf                	mov    %edi,%ecx
40a12c:	ff d6                	call   *%esi
40a12e:	8b c3                	mov    %ebx,%eax
40a130:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40a133:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a13a:	59                   	pop    %ecx
40a13b:	5f                   	pop    %edi
40a13c:	5e                   	pop    %esi
40a13d:	5b                   	pop    %ebx
40a13e:	8b e5                	mov    %ebp,%esp
40a140:	5d                   	pop    %ebp
40a141:	c3                   	ret
40a142:	cc                   	int3
40a143:	cc                   	int3
40a144:	cc                   	int3
40a145:	cc                   	int3
40a146:	cc                   	int3
40a147:	cc                   	int3
40a148:	cc                   	int3
40a149:	cc                   	int3
40a14a:	cc                   	int3
40a14b:	cc                   	int3
40a14c:	cc                   	int3
40a14d:	cc                   	int3
40a14e:	cc                   	int3
40a14f:	cc                   	int3
40a150:	55                   	push   %ebp
40a151:	8b ec                	mov    %esp,%ebp
40a153:	6a ff                	push   $0xffffffff
40a155:	68 3c c1 43 00       	push   $0x43c13c
40a15a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40a160:	50                   	push   %eax
40a161:	83 ec 48             	sub    $0x48,%esp
40a164:	a1 14 50 45 00       	mov    0x455014,%eax
40a169:	33 c5                	xor    %ebp,%eax
40a16b:	89 45 f0             	mov    %eax,-0x10(%ebp)
40a16e:	53                   	push   %ebx
40a16f:	56                   	push   %esi
40a170:	57                   	push   %edi
40a171:	50                   	push   %eax
40a172:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a175:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40a17b:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a17e:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a181:	6a 00                	push   $0x0
40a183:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40a186:	e8 9c ed 00 00       	call   0x418f27
40a18b:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40a192:	8b 35 a8 7b 45 00    	mov    0x457ba8,%esi
40a198:	a1 8c 7b 45 00       	mov    0x457b8c,%eax
40a19d:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a1a0:	85 f6                	test   %esi,%esi
40a1a2:	75 2f                	jne    0x40a1d3
40a1a4:	56                   	push   %esi
40a1a5:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40a1a8:	e8 7a ed 00 00       	call   0x418f27
40a1ad:	39 35 a8 7b 45 00    	cmp    %esi,0x457ba8
40a1b3:	75 10                	jne    0x40a1c5
40a1b5:	a1 28 64 45 00       	mov    0x456428,%eax
40a1ba:	40                   	inc    %eax
40a1bb:	a3 28 64 45 00       	mov    %eax,0x456428
40a1c0:	a3 a8 7b 45 00       	mov    %eax,0x457ba8
40a1c5:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40a1c8:	e8 b2 ed 00 00       	call   0x418f7f
40a1cd:	8b 35 a8 7b 45 00    	mov    0x457ba8,%esi
40a1d3:	8b 4b 04             	mov    0x4(%ebx),%ecx
40a1d6:	8d 1c b5 00 00 00 00 	lea    0x0(,%esi,4),%ebx
40a1dd:	3b 71 0c             	cmp    0xc(%ecx),%esi
40a1e0:	73 30                	jae    0x40a212
40a1e2:	8b 41 08             	mov    0x8(%ecx),%eax
40a1e5:	8b 3c 03             	mov    (%ebx,%eax,1),%edi
40a1e8:	85 ff                	test   %edi,%edi
40a1ea:	74 28                	je     0x40a214
40a1ec:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a1ef:	e8 8b ed 00 00       	call   0x418f7f
40a1f4:	8b c7                	mov    %edi,%eax
40a1f6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40a1f9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a200:	59                   	pop    %ecx
40a201:	5f                   	pop    %edi
40a202:	5e                   	pop    %esi
40a203:	5b                   	pop    %ebx
40a204:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a207:	33 cd                	xor    %ebp,%ecx
40a209:	e8 9c f9 00 00       	call   0x419baa
40a20e:	8b e5                	mov    %ebp,%esp
40a210:	5d                   	pop    %ebp
40a211:	c3                   	ret
40a212:	33 ff                	xor    %edi,%edi
40a214:	80 79 14 00          	cmpb   $0x0,0x14(%ecx)
40a218:	74 10                	je     0x40a22a
40a21a:	e8 ef ee 00 00       	call   0x41910e
40a21f:	3b 70 0c             	cmp    0xc(%eax),%esi
40a222:	73 0a                	jae    0x40a22e
40a224:	8b 40 08             	mov    0x8(%eax),%eax
40a227:	8b 3c 03             	mov    (%ebx,%eax,1),%edi
40a22a:	85 ff                	test   %edi,%edi
40a22c:	75 be                	jne    0x40a1ec
40a22e:	8b 45 e0             	mov    -0x20(%ebp),%eax
40a231:	85 c0                	test   %eax,%eax
40a233:	74 04                	je     0x40a239
40a235:	8b f8                	mov    %eax,%edi
40a237:	eb b3                	jmp    0x40a1ec
40a239:	6a 08                	push   $0x8
40a23b:	e8 86 f9 00 00       	call   0x419bc6
40a240:	8b f8                	mov    %eax,%edi
40a242:	83 c4 04             	add    $0x4,%esp
40a245:	89 7d e0             	mov    %edi,-0x20(%ebp)
40a248:	8b 45 ec             	mov    -0x14(%ebp),%eax
40a24b:	8b 40 04             	mov    0x4(%eax),%eax
40a24e:	85 c0                	test   %eax,%eax
40a250:	74 0c                	je     0x40a25e
40a252:	8b 70 18             	mov    0x18(%eax),%esi
40a255:	85 f6                	test   %esi,%esi
40a257:	75 0a                	jne    0x40a263
40a259:	8d 70 1c             	lea    0x1c(%eax),%esi
40a25c:	eb 05                	jmp    0x40a263
40a25e:	be 67 ed 44 00       	mov    $0x44ed67,%esi
40a263:	6a 00                	push   $0x0
40a265:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40a268:	e8 ba ec 00 00       	call   0x418f27
40a26d:	c7 45 b0 00 00 00 00 	movl   $0x0,-0x50(%ebp)
40a274:	c6 45 b4 00          	movb   $0x0,-0x4c(%ebp)
40a278:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
40a27f:	c6 45 bc 00          	movb   $0x0,-0x44(%ebp)
40a283:	33 c0                	xor    %eax,%eax
40a285:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
40a28c:	66 89 45 c4          	mov    %ax,-0x3c(%ebp)
40a290:	89 45 c8             	mov    %eax,-0x38(%ebp)
40a293:	66 89 45 cc          	mov    %ax,-0x34(%ebp)
40a297:	89 45 d0             	mov    %eax,-0x30(%ebp)
40a29a:	88 45 d4             	mov    %al,-0x2c(%ebp)
40a29d:	89 45 d8             	mov    %eax,-0x28(%ebp)
40a2a0:	88 45 dc             	mov    %al,-0x24(%ebp)
40a2a3:	c6 45 fc 08          	movb   $0x8,-0x4(%ebp)
40a2a7:	85 f6                	test   %esi,%esi
40a2a9:	0f 84 e5 00 00 00    	je     0x40a394
40a2af:	8d 45 ac             	lea    -0x54(%ebp),%eax
40a2b2:	56                   	push   %esi
40a2b3:	50                   	push   %eax
40a2b4:	e8 5b ef 00 00       	call   0x419214
40a2b9:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
40a2c0:	c7 07 c4 f6 43 00    	movl   $0x43f6c4,(%edi)
40a2c6:	8d 45 ac             	lea    -0x54(%ebp),%eax
40a2c9:	c6 45 fc 09          	movb   $0x9,-0x4(%ebp)
40a2cd:	50                   	push   %eax
40a2ce:	e8 8c ef 00 00       	call   0x41925f
40a2d3:	8b 45 d8             	mov    -0x28(%ebp),%eax
40a2d6:	83 c4 0c             	add    $0xc,%esp
40a2d9:	85 c0                	test   %eax,%eax
40a2db:	74 09                	je     0x40a2e6
40a2dd:	50                   	push   %eax
40a2de:	e8 60 97 01 00       	call   0x423a43
40a2e3:	83 c4 04             	add    $0x4,%esp
40a2e6:	8b 45 d0             	mov    -0x30(%ebp),%eax
40a2e9:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
40a2f0:	85 c0                	test   %eax,%eax
40a2f2:	74 09                	je     0x40a2fd
40a2f4:	50                   	push   %eax
40a2f5:	e8 49 97 01 00       	call   0x423a43
40a2fa:	83 c4 04             	add    $0x4,%esp
40a2fd:	8b 45 c8             	mov    -0x38(%ebp),%eax
40a300:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
40a307:	85 c0                	test   %eax,%eax
40a309:	74 09                	je     0x40a314
40a30b:	50                   	push   %eax
40a30c:	e8 32 97 01 00       	call   0x423a43
40a311:	83 c4 04             	add    $0x4,%esp
40a314:	8b 45 c0             	mov    -0x40(%ebp),%eax
40a317:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
40a31e:	85 c0                	test   %eax,%eax
40a320:	74 09                	je     0x40a32b
40a322:	50                   	push   %eax
40a323:	e8 1b 97 01 00       	call   0x423a43
40a328:	83 c4 04             	add    $0x4,%esp
40a32b:	8b 45 b8             	mov    -0x48(%ebp),%eax
40a32e:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
40a335:	85 c0                	test   %eax,%eax
40a337:	74 09                	je     0x40a342
40a339:	50                   	push   %eax
40a33a:	e8 04 97 01 00       	call   0x423a43
40a33f:	83 c4 04             	add    $0x4,%esp