407e1b:	89 45 cc             	mov    %eax,-0x34(%ebp)
407e1e:	74 3e                	je     0x407e5e
407e20:	8b 57 08             	mov    0x8(%edi),%edx
407e23:	66 8b 00             	mov    (%eax),%ax
407e26:	89 55 a8             	mov    %edx,-0x58(%ebp)
407e29:	8b 57 04             	mov    0x4(%edi),%edx
407e2c:	89 55 ac             	mov    %edx,-0x54(%ebp)
407e2f:	66 8b 57 0c          	mov    0xc(%edi),%dx
407e33:	66 89 55 b0          	mov    %dx,-0x50(%ebp)
407e37:	66 8b 57 0e          	mov    0xe(%edi),%dx
407e3b:	8b cf                	mov    %edi,%ecx
407e3d:	66 89 55 b2          	mov    %dx,-0x4e(%ebp)
407e41:	66 8b 57 10          	mov    0x10(%edi),%dx
407e45:	66 89 45 b6          	mov    %ax,-0x4a(%ebp)
407e49:	66 8b 47 14          	mov    0x14(%edi),%ax
407e4d:	83 c1 18             	add    $0x18,%ecx
407e50:	66 89 55 b4          	mov    %dx,-0x4c(%ebp)
407e54:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
407e58:	8d 7d a8             	lea    -0x58(%ebp),%edi
407e5b:	89 4d cc             	mov    %ecx,-0x34(%ebp)
407e5e:	0f bf 57 0a          	movswl 0xa(%edi),%edx
407e62:	0f bf 47 0e          	movswl 0xe(%edi),%eax
407e66:	0f bf 4f 0c          	movswl 0xc(%edi),%ecx
407e6a:	03 c2                	add    %edx,%eax
407e6c:	56                   	push   %esi
407e6d:	0f bf 77 08          	movswl 0x8(%edi),%esi
407e71:	89 45 a4             	mov    %eax,-0x5c(%ebp)
407e74:	8d 45 98             	lea    -0x68(%ebp),%eax
407e77:	50                   	push   %eax
407e78:	8b 45 08             	mov    0x8(%ebp),%eax
407e7b:	ff 70 1c             	push   0x1c(%eax)
407e7e:	03 ce                	add    %esi,%ecx
407e80:	89 75 98             	mov    %esi,-0x68(%ebp)
407e83:	89 55 9c             	mov    %edx,-0x64(%ebp)
407e86:	89 4d a0             	mov    %ecx,-0x60(%ebp)
407e89:	ff 15 54 07 4b 00    	call   *0x4b0754
407e8f:	83 7d 20 04          	cmpl   $0x4,0x20(%ebp)
407e93:	8b 75 1c             	mov    0x1c(%ebp),%esi
407e96:	89 5d d8             	mov    %ebx,-0x28(%ebp)
407e99:	72 21                	jb     0x407ebc
407e9b:	8b 1e                	mov    (%esi),%ebx
407e9d:	83 6d 20 04          	subl   $0x4,0x20(%ebp)
407ea1:	83 c6 04             	add    $0x4,%esi
407ea4:	85 db                	test   %ebx,%ebx
407ea6:	76 12                	jbe    0x407eba
407ea8:	53                   	push   %ebx
407ea9:	56                   	push   %esi
407eaa:	ff 15 f8 04 4b 00    	call   *0x4b04f8
407eb0:	03 db                	add    %ebx,%ebx
407eb2:	03 f3                	add    %ebx,%esi
407eb4:	29 5d 20             	sub    %ebx,0x20(%ebp)
407eb7:	89 45 d8             	mov    %eax,-0x28(%ebp)
407eba:	33 db                	xor    %ebx,%ebx
407ebc:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
407ebf:	e8 32 83 03 00       	call   0x4401f6
407ec4:	8b 10                	mov    (%eax),%edx
407ec6:	8b c8                	mov    %eax,%ecx
407ec8:	ff 52 0c             	call   *0xc(%edx)
407ecb:	83 c0 10             	add    $0x10,%eax
407ece:	89 45 14             	mov    %eax,0x14(%ebp)
407ed1:	66 81 7d 18 7a 03    	cmpw   $0x37a,0x18(%ebp)
407ed7:	89 5d fc             	mov    %ebx,-0x4(%ebp)
407eda:	89 5d c8             	mov    %ebx,-0x38(%ebp)
407edd:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
407ee0:	89 5d d0             	mov    %ebx,-0x30(%ebp)
407ee3:	74 0c                	je     0x407ef1
407ee5:	66 81 7d 18 7b 03    	cmpw   $0x37b,0x18(%ebp)
407eeb:	0f 85 a9 00 00 00    	jne    0x407f9a
407ef1:	8b 06                	mov    (%esi),%eax
407ef3:	8d 48 f4             	lea    -0xc(%eax),%ecx
407ef6:	83 c6 0c             	add    $0xc,%esi
407ef9:	3b cb                	cmp    %ebx,%ecx
407efb:	89 45 c0             	mov    %eax,-0x40(%ebp)
407efe:	89 4d 1c             	mov    %ecx,0x1c(%ebp)
407f01:	0f 86 89 00 00 00    	jbe    0x407f90
407f07:	8b 06                	mov    (%esi),%eax
407f09:	83 6d 1c 06          	subl   $0x6,0x1c(%ebp)
407f0d:	83 c6 04             	add    $0x4,%esi
407f10:	66 8b 0e             	mov    (%esi),%cx
407f13:	46                   	inc    %esi
407f14:	46                   	inc    %esi
407f15:	3d 01 00 01 80       	cmp    $0x80010001,%eax
407f1a:	89 45 bc             	mov    %eax,-0x44(%ebp)
407f1d:	66 89 4d 10          	mov    %cx,0x10(%ebp)
407f21:	75 33                	jne    0x407f56
407f23:	8b 06                	mov    (%esi),%eax
407f25:	83 c6 04             	add    $0x4,%esi
407f28:	89 45 c4             	mov    %eax,-0x3c(%ebp)
407f2b:	8b 06                	mov    (%esi),%eax
407f2d:	83 c6 0c             	add    $0xc,%esi
407f30:	56                   	push   %esi
407f31:	8d 4d 14             	lea    0x14(%ebp),%ecx
407f34:	89 45 d0             	mov    %eax,-0x30(%ebp)
407f37:	e8 45 92 ff ff       	call   0x401181
407f3c:	8b 45 14             	mov    0x14(%ebp),%eax
407f3f:	8b 40 f4             	mov    -0xc(%eax),%eax
407f42:	6a ef                	push   $0xffffffef
407f44:	59                   	pop    %ecx
407f45:	2b c8                	sub    %eax,%ecx
407f47:	01 4d 1c             	add    %ecx,0x1c(%ebp)
407f4a:	8d 74 06 01          	lea    0x1(%esi,%eax,1),%esi
407f4e:	8b 45 10             	mov    0x10(%ebp),%eax
407f51:	89 45 c8             	mov    %eax,-0x38(%ebp)
407f54:	eb 2e                	jmp    0x407f84
407f56:	6a 1c                	push   $0x1c
407f58:	e8 f8 80 03 00       	call   0x440055
407f5d:	59                   	pop    %ecx
407f5e:	89 45 94             	mov    %eax,-0x6c(%ebp)
407f61:	3b c3                	cmp    %ebx,%eax
407f63:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
407f67:	74 12                	je     0x407f7b
407f69:	ff 75 10             	push   0x10(%ebp)
407f6c:	8b c8                	mov    %eax,%ecx
407f6e:	ff 75 bc             	push   -0x44(%ebp)
407f71:	ff 75 d4             	push   -0x2c(%ebp)
407f74:	e8 f7 77 00 00       	call   0x40f770
407f79:	eb 02                	jmp    0x407f7d
407f7b:	33 c0                	xor    %eax,%eax
407f7d:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
407f81:	89 45 d4             	mov    %eax,-0x2c(%ebp)
407f84:	39 5d 1c             	cmp    %ebx,0x1c(%ebp)
407f87:	0f 87 7a ff ff ff    	ja     0x407f07
407f8d:	8b 45 c0             	mov    -0x40(%ebp),%eax
407f90:	29 45 20             	sub    %eax,0x20(%ebp)
407f93:	81 45 18 fc ff 00 00 	addl   $0xfffc,0x18(%ebp)
407f9a:	8b 45 cc             	mov    -0x34(%ebp),%eax
407f9d:	66 83 38 7b          	cmpw   $0x7b,(%eax)
407fa1:	8d 4d e0             	lea    -0x20(%ebp),%ecx
407fa4:	51                   	push   %ecx
407fa5:	50                   	push   %eax
407fa6:	75 08                	jne    0x407fb0
407fa8:	ff 15 28 0b 4b 00    	call   *0x4b0b28
407fae:	eb 06                	jmp    0x407fb6
407fb0:	ff 15 24 0b 4b 00    	call   *0x4b0b24
407fb6:	53                   	push   %ebx
407fb7:	ff 75 20             	push   0x20(%ebp)
407fba:	8d 8d 6c ff ff ff    	lea    -0x94(%ebp),%ecx
407fc0:	56                   	push   %esi
407fc1:	89 45 1c             	mov    %eax,0x1c(%ebp)
407fc4:	e8 0a fd 04 00       	call   0x457cd3
407fc9:	66 8b 75 18          	mov    0x18(%ebp),%si
407fcd:	66 81 ee 78 03       	sub    $0x378,%si
407fd2:	66 f7 de             	neg    %si
407fd5:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
407fdb:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
407fdf:	89 5d dc             	mov    %ebx,-0x24(%ebp)
407fe2:	1b f6                	sbb    %esi,%esi
407fe4:	23 f0                	and    %eax,%esi
407fe6:	39 5d 1c             	cmp    %ebx,0x1c(%ebp)
407fe9:	0f 8c a7 00 00 00    	jl     0x408096
407fef:	8b 4d 08             	mov    0x8(%ebp),%ecx
407ff2:	e8 42 53 00 00       	call   0x40d339
407ff7:	85 c0                	test   %eax,%eax
407ff9:	0f 84 97 00 00 00    	je     0x408096
407fff:	8d 45 dc             	lea    -0x24(%ebp),%eax
408002:	50                   	push   %eax
408003:	ff 75 d8             	push   -0x28(%ebp)
408006:	33 c0                	xor    %eax,%eax
408008:	66 81 7d 18 77 03    	cmpw   $0x377,0x18(%ebp)
40800e:	0f 94 c0             	sete   %al
408011:	50                   	push   %eax
408012:	0f b7 47 10          	movzwl 0x10(%edi),%eax
408016:	56                   	push   %esi
408017:	50                   	push   %eax
408018:	8d 45 98             	lea    -0x68(%ebp),%eax
40801b:	50                   	push   %eax
40801c:	ff 37                	push   (%edi)
40801e:	8d 45 e0             	lea    -0x20(%ebp),%eax
408021:	53                   	push   %ebx
408022:	50                   	push   %eax
408023:	8b 45 08             	mov    0x8(%ebp),%eax
408026:	8b 48 48             	mov    0x48(%eax),%ecx
408029:	53                   	push   %ebx
40802a:	e8 06 5d 00 00       	call   0x40dd35
40802f:	85 c0                	test   %eax,%eax
408031:	74 63                	je     0x408096
408033:	8b 4d dc             	mov    -0x24(%ebp),%ecx
408036:	6a 01                	push   $0x1
408038:	e8 6c 6b 00 00       	call   0x40eba9
40803d:	8b 45 dc             	mov    -0x24(%ebp),%eax
408040:	6a 13                	push   $0x13
408042:	53                   	push   %ebx
408043:	53                   	push   %ebx
408044:	53                   	push   %ebx
408045:	53                   	push   %ebx
408046:	ff 75 0c             	push   0xc(%ebp)
408049:	ff 70 20             	push   0x20(%eax)
40804c:	ff 15 dc 07 4b 00    	call   *0x4b07dc
408052:	8b 45 dc             	mov    -0x24(%ebp),%eax
408055:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
408058:	89 88 90 00 00 00    	mov    %ecx,0x90(%eax)
40805e:	8b 4d dc             	mov    -0x24(%ebp),%ecx
408061:	8d 45 14             	lea    0x14(%ebp),%eax
408064:	81 c1 a0 00 00 00    	add    $0xa0,%ecx
40806a:	50                   	push   %eax
40806b:	e8 83 92 ff ff       	call   0x4012f3
408070:	8b 45 dc             	mov    -0x24(%ebp),%eax
408073:	66 8b 4d c8          	mov    -0x38(%ebp),%cx
408077:	66 89 88 94 00 00 00 	mov    %cx,0x94(%eax)
40807e:	8b 45 dc             	mov    -0x24(%ebp),%eax
408081:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
408084:	89 88 98 00 00 00    	mov    %ecx,0x98(%eax)
40808a:	8b 45 dc             	mov    -0x24(%ebp),%eax
40808d:	8b 4d d0             	mov    -0x30(%ebp),%ecx
408090:	89 88 9c 00 00 00    	mov    %ecx,0x9c(%eax)
408096:	39 5d d8             	cmp    %ebx,-0x28(%ebp)
408099:	5e                   	pop    %esi
40809a:	74 09                	je     0x4080a5
40809c:	ff 75 d8             	push   -0x28(%ebp)
40809f:	ff 15 08 05 4b 00    	call   *0x4b0508
4080a5:	8b 45 dc             	mov    -0x24(%ebp),%eax
4080a8:	3b c3                	cmp    %ebx,%eax
4080aa:	74 0d                	je     0x4080b9
4080ac:	8b 40 20             	mov    0x20(%eax),%eax
4080af:	8b 4d 24             	mov    0x24(%ebp),%ecx
4080b2:	33 db                	xor    %ebx,%ebx
4080b4:	89 01                	mov    %eax,(%ecx)
4080b6:	43                   	inc    %ebx
4080b7:	eb 05                	jmp    0x4080be
4080b9:	8b 45 24             	mov    0x24(%ebp),%eax
4080bc:	89 18                	mov    %ebx,(%eax)
4080be:	8d 8d 6c ff ff ff    	lea    -0x94(%ebp),%ecx
4080c4:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
4080c8:	e8 c3 ff 04 00       	call   0x458090
4080cd:	8b 4d 14             	mov    0x14(%ebp),%ecx
4080d0:	83 c1 f0             	add    $0xfffffff0,%ecx
4080d3:	e8 7a 92 ff ff       	call   0x401352
4080d8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4080db:	5f                   	pop    %edi
4080dc:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4080e3:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4080e6:	8b c3                	mov    %ebx,%eax
4080e8:	5b                   	pop    %ebx
4080e9:	e8 f0 fa 00 00       	call   0x417bde
4080ee:	c9                   	leave
4080ef:	c2 20 00             	ret    $0x20
4080f2:	55                   	push   %ebp
4080f3:	8b ec                	mov    %esp,%ebp
4080f5:	83 ec 1c             	sub    $0x1c,%esp
4080f8:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4080fb:	8b 4d 10             	mov    0x10(%ebp),%ecx
4080fe:	8b 01                	mov    (%ecx),%eax
408100:	33 d2                	xor    %edx,%edx
408102:	3b c2                	cmp    %edx,%eax
408104:	75 08                	jne    0x40810e
408106:	33 c0                	xor    %eax,%eax
408108:	40                   	inc    %eax
408109:	e9 37 01 00 00       	jmp    0x408245
40810e:	53                   	push   %ebx
40810f:	56                   	push   %esi
408110:	8b 75 08             	mov    0x8(%ebp),%esi
408113:	3b f2                	cmp    %edx,%esi
408115:	57                   	push   %edi
408116:	75 05                	jne    0x40811d
408118:	89 55 f8             	mov    %edx,-0x8(%ebp)
40811b:	eb 06                	jmp    0x408123
40811d:	8b 7e 1c             	mov    0x1c(%esi),%edi
408120:	89 7d f8             	mov    %edi,-0x8(%ebp)
408123:	8b 7d 0c             	mov    0xc(%ebp),%edi
408126:	33 db                	xor    %ebx,%ebx
408128:	66 81 78 02 ff ff    	cmpw   $0xffff,0x2(%eax)
40812e:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
408135:	0f 94 c3             	sete   %bl
408138:	3b fa                	cmp    %edx,%edi
40813a:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40813d:	0f 84 e6 00 00 00    	je     0x408229
408143:	8b 41 04             	mov    0x4(%ecx),%eax
408146:	89 45 f4             	mov    %eax,-0xc(%ebp)
408149:	89 55 10             	mov    %edx,0x10(%ebp)
40814c:	89 55 0c             	mov    %edx,0xc(%ebp)
40814f:	66 39 17             	cmp    %dx,(%edi)
408152:	0f 84 c9 00 00 00    	je     0x408221
408158:	47                   	inc    %edi
408159:	47                   	inc    %edi
40815a:	66 8b 1f             	mov    (%edi),%bx
40815d:	47                   	inc    %edi
40815e:	47                   	inc    %edi
40815f:	8b 07                	mov    (%edi),%eax
408161:	83 c7 04             	add    $0x4,%edi
408164:	66 81 fb 76 03       	cmp    $0x376,%bx
408169:	89 45 e8             	mov    %eax,-0x18(%ebp)
40816c:	74 42                	je     0x4081b0
40816e:	66 81 fb 7a 03       	cmp    $0x37a,%bx
408173:	74 3b                	je     0x4081b0
408175:	66 81 fb 77 03       	cmp    $0x377,%bx
40817a:	74 34                	je     0x4081b0
40817c:	66 81 fb 7b 03       	cmp    $0x37b,%bx
408181:	74 2d                	je     0x4081b0
408183:	66 81 fb 78 03       	cmp    $0x378,%bx
408188:	0f 85 85 00 00 00    	jne    0x408213
40818e:	eb 20                	jmp    0x4081b0
408190:	83 fe ff             	cmp    $0xffffffff,%esi
408193:	74 2b                	je     0x4081c0
408195:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
408199:	75 07                	jne    0x4081a2
40819b:	6a 05                	push   $0x5
40819d:	ff 75 f8             	push   -0x8(%ebp)
4081a0:	eb 05                	jmp    0x4081a7
4081a2:	6a 02                	push   $0x2
4081a4:	ff 75 0c             	push   0xc(%ebp)
4081a7:	ff 15 4c 07 4b 00    	call   *0x4b074c
4081ad:	89 45 0c             	mov    %eax,0xc(%ebp)
4081b0:	8b 4d 10             	mov    0x10(%ebp),%ecx
4081b3:	8b 45 f4             	mov    -0xc(%ebp),%eax
4081b6:	8b 34 88             	mov    (%eax,%ecx,4),%esi
4081b9:	ff 45 10             	incl   0x10(%ebp)
4081bc:	85 f6                	test   %esi,%esi
4081be:	74 d0                	je     0x408190
4081c0:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
4081c4:	83 fe ff             	cmp    $0xffffffff,%esi
4081c7:	74 46                	je     0x40820f
4081c9:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4081cc:	8d 45 f0             	lea    -0x10(%ebp),%eax
4081cf:	50                   	push   %eax
4081d0:	ff 75 e8             	push   -0x18(%ebp)
4081d3:	57                   	push   %edi
4081d4:	53                   	push   %ebx
4081d5:	56                   	push   %esi
4081d6:	ff 75 ec             	push   -0x14(%ebp)
4081d9:	ff 75 0c             	push   0xc(%ebp)
4081dc:	ff 75 08             	push   0x8(%ebp)
4081df:	e8 12 fc ff ff       	call   0x407df6
4081e4:	85 c0                	test   %eax,%eax
4081e6:	74 27                	je     0x40820f
4081e8:	8b 5d f0             	mov    -0x10(%ebp),%ebx
4081eb:	85 db                	test   %ebx,%ebx
4081ed:	74 24                	je     0x408213
4081ef:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
4081f3:	74 09                	je     0x4081fe
4081f5:	ff 36                	push   (%esi)
4081f7:	53                   	push   %ebx
4081f8:	ff 15 50 07 4b 00    	call   *0x4b0750
4081fe:	53                   	push   %ebx
4081ff:	ff 15 d8 07 4b 00    	call   *0x4b07d8
408205:	3b 45 f8             	cmp    -0x8(%ebp),%eax
408208:	75 09                	jne    0x408213
40820a:	89 5d 0c             	mov    %ebx,0xc(%ebp)
40820d:	eb 04                	jmp    0x408213
40820f:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
408213:	03 7d e8             	add    -0x18(%ebp),%edi
408216:	33 d2                	xor    %edx,%edx
408218:	39 55 fc             	cmp    %edx,-0x4(%ebp)
40821b:	0f 85 2e ff ff ff    	jne    0x40814f
408221:	39 55 fc             	cmp    %edx,-0x4(%ebp)
408224:	74 19                	je     0x40823f
408226:	8b 75 08             	mov    0x8(%ebp),%esi
408229:	8b 4e 48             	mov    0x48(%esi),%ecx
40822c:	3b ca                	cmp    %edx,%ecx
40822e:	74 06                	je     0x408236
408230:	52                   	push   %edx