408a9f:	e8 c8 41 00 00       	call   0x40cc6c
408aa4:	bf 57 04 00 00       	mov    $0x457,%edi
408aa9:	eb 54                	jmp    0x408aff
408aab:	50                   	push   %eax
408aac:	8b ce                	mov    %esi,%ecx
408aae:	e8 75 42 00 00       	call   0x40cd28
408ab3:	83 f8 01             	cmp    $0x1,%eax
408ab6:	75 27                	jne    0x408adf
408ab8:	53                   	push   %ebx
408ab9:	68 51 04 00 00       	push   $0x451
408abe:	8b ce                	mov    %esi,%ecx
408ac0:	e8 37 42 00 00       	call   0x40ccfc
408ac5:	53                   	push   %ebx
408ac6:	68 52 04 00 00       	push   $0x452
408acb:	8b ce                	mov    %esi,%ecx
408acd:	e8 2a 42 00 00       	call   0x40ccfc
408ad2:	53                   	push   %ebx
408ad3:	68 64 04 00 00       	push   $0x464
408ad8:	8b ce                	mov    %esi,%ecx
408ada:	e8 1d 42 00 00       	call   0x40ccfc
408adf:	bf 57 04 00 00       	mov    $0x457,%edi
408ae4:	8b ce                	mov    %esi,%ecx
408ae6:	57                   	push   %edi
408ae7:	e8 3c 42 00 00       	call   0x40cd28
408aec:	48                   	dec    %eax
408aed:	8b ce                	mov    %esi,%ecx
408aef:	f7 d8                	neg    %eax
408af1:	1b c0                	sbb    %eax,%eax
408af3:	40                   	inc    %eax
408af4:	50                   	push   %eax
408af5:	68 51 04 00 00       	push   $0x451
408afa:	e8 6d 41 00 00       	call   0x40cc6c
408aff:	57                   	push   %edi
408b00:	8b ce                	mov    %esi,%ecx
408b02:	e8 21 42 00 00       	call   0x40cd28
408b07:	48                   	dec    %eax
408b08:	8b ce                	mov    %esi,%ecx
408b0a:	f7 d8                	neg    %eax
408b0c:	1b c0                	sbb    %eax,%eax
408b0e:	40                   	inc    %eax
408b0f:	50                   	push   %eax
408b10:	68 52 04 00 00       	push   $0x452
408b15:	e8 52 41 00 00       	call   0x40cc6c
408b1a:	57                   	push   %edi
408b1b:	8b ce                	mov    %esi,%ecx
408b1d:	e8 06 42 00 00       	call   0x40cd28
408b22:	48                   	dec    %eax
408b23:	f7 d8                	neg    %eax
408b25:	1b c0                	sbb    %eax,%eax
408b27:	40                   	inc    %eax
408b28:	50                   	push   %eax
408b29:	68 64 04 00 00       	push   $0x464
408b2e:	8b ce                	mov    %esi,%ecx
408b30:	e8 37 41 00 00       	call   0x40cc6c
408b35:	e9 b7 00 00 00       	jmp    0x408bf1
408b3a:	33 d2                	xor    %edx,%edx
408b3c:	66 3b d0             	cmp    %ax,%dx
408b3f:	0f 85 ac 00 00 00    	jne    0x408bf1
408b45:	33 c0                	xor    %eax,%eax
408b47:	40                   	inc    %eax
408b48:	66 3b c1             	cmp    %cx,%ax
408b4b:	0f 85 91 00 00 00    	jne    0x408be2
408b51:	68 56 04 00 00       	push   $0x456
408b56:	8b ce                	mov    %esi,%ecx
408b58:	e8 cb 41 00 00       	call   0x40cd28
408b5d:	48                   	dec    %eax
408b5e:	f7 d8                	neg    %eax
408b60:	1b c0                	sbb    %eax,%eax
408b62:	40                   	inc    %eax
408b63:	50                   	push   %eax
408b64:	68 2d 01 00 00       	push   $0x12d
408b69:	e8 8d a2 00 00       	call   0x412dfb
408b6e:	68 51 04 00 00       	push   $0x451
408b73:	8b ce                	mov    %esi,%ecx
408b75:	e8 ae 41 00 00       	call   0x40cd28
408b7a:	48                   	dec    %eax
408b7b:	f7 d8                	neg    %eax
408b7d:	1b c0                	sbb    %eax,%eax
408b7f:	40                   	inc    %eax
408b80:	50                   	push   %eax
408b81:	68 2e 01 00 00       	push   $0x12e
408b86:	e8 70 a2 00 00       	call   0x412dfb
408b8b:	68 52 04 00 00       	push   $0x452
408b90:	8b ce                	mov    %esi,%ecx
408b92:	e8 91 41 00 00       	call   0x40cd28
408b97:	48                   	dec    %eax
408b98:	f7 d8                	neg    %eax
408b9a:	1b c0                	sbb    %eax,%eax
408b9c:	40                   	inc    %eax
408b9d:	50                   	push   %eax
408b9e:	68 2f 01 00 00       	push   $0x12f
408ba3:	e8 53 a2 00 00       	call   0x412dfb
408ba8:	68 64 04 00 00       	push   $0x464
408bad:	8b ce                	mov    %esi,%ecx
408baf:	e8 74 41 00 00       	call   0x40cd28
408bb4:	48                   	dec    %eax
408bb5:	f7 d8                	neg    %eax
408bb7:	1b c0                	sbb    %eax,%eax
408bb9:	40                   	inc    %eax
408bba:	50                   	push   %eax
408bbb:	68 33 01 00 00       	push   $0x133
408bc0:	e8 36 a2 00 00       	call   0x412dfb
408bc5:	68 53 04 00 00       	push   $0x453
408bca:	8b ce                	mov    %esi,%ecx
408bcc:	e8 57 41 00 00       	call   0x40cd28
408bd1:	48                   	dec    %eax
408bd2:	f7 d8                	neg    %eax
408bd4:	1b c0                	sbb    %eax,%eax
408bd6:	40                   	inc    %eax
408bd7:	50                   	push   %eax
408bd8:	68 30 01 00 00       	push   $0x130
408bdd:	e8 19 a2 00 00       	call   0x412dfb
408be2:	57                   	push   %edi
408be3:	ff 76 04             	push   0x4(%esi)
408be6:	ff 15 b8 b2 41 00    	call   *0x41b2b8
408bec:	eb 03                	jmp    0x408bf1
408bee:	33 db                	xor    %ebx,%ebx
408bf0:	43                   	inc    %ebx
408bf1:	5f                   	pop    %edi
408bf2:	5e                   	pop    %esi
408bf3:	8b c3                	mov    %ebx,%eax
408bf5:	5b                   	pop    %ebx
408bf6:	5d                   	pop    %ebp
408bf7:	c2 08 00             	ret    $0x8
408bfa:	cc                   	int3
408bfb:	cc                   	int3
408bfc:	cc                   	int3
408bfd:	cc                   	int3
408bfe:	cc                   	int3
408bff:	cc                   	int3
408c00:	8b ff                	mov    %edi,%edi
408c02:	55                   	push   %ebp
408c03:	8b ec                	mov    %esp,%ebp
408c05:	56                   	push   %esi
408c06:	8b f1                	mov    %ecx,%esi
408c08:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
408c0c:	c7 06 c8 15 40 00    	movl   $0x4015c8,(%esi)
408c12:	74 0e                	je     0x408c22
408c14:	ff 76 0c             	push   0xc(%esi)
408c17:	ff 15 24 b3 41 00    	call   *0x41b324
408c1d:	83 66 0c 00          	andl   $0x0,0xc(%esi)
408c21:	59                   	pop    %ecx
408c22:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
408c26:	74 0e                	je     0x408c36
408c28:	ff 76 10             	push   0x10(%esi)
408c2b:	ff 15 24 b3 41 00    	call   *0x41b324
408c31:	83 66 10 00          	andl   $0x0,0x10(%esi)
408c35:	59                   	pop    %ecx
408c36:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
408c3a:	c7 06 90 15 40 00    	movl   $0x401590,(%esi)
408c40:	74 08                	je     0x408c4a
408c42:	56                   	push   %esi
408c43:	ff 15 cc b2 41 00    	call   *0x41b2cc
408c49:	59                   	pop    %ecx
408c4a:	8b c6                	mov    %esi,%eax
408c4c:	5e                   	pop    %esi
408c4d:	5d                   	pop    %ebp
408c4e:	c2 04 00             	ret    $0x4
408c51:	8b ff                	mov    %edi,%edi
408c53:	55                   	push   %ebp
408c54:	8b ec                	mov    %esp,%ebp
408c56:	51                   	push   %ecx
408c57:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
408c5b:	57                   	push   %edi
408c5c:	8b f9                	mov    %ecx,%edi
408c5e:	8b 47 10             	mov    0x10(%edi),%eax
408c61:	85 c0                	test   %eax,%eax
408c63:	74 41                	je     0x408ca6
408c65:	33 c9                	xor    %ecx,%ecx
408c67:	8d 55 fc             	lea    -0x4(%ebp),%edx
408c6a:	6a 1b                	push   $0x1b
408c6c:	66 89 08             	mov    %cx,(%eax)
408c6f:	59                   	pop    %ecx
408c70:	e8 70 6d 00 00       	call   0x40f9e5
408c75:	85 c0                	test   %eax,%eax
408c77:	74 25                	je     0x408c9e
408c79:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
408c7d:	74 1f                	je     0x408c9e
408c7f:	6a ff                	push   $0xffffffff
408c81:	ff 75 fc             	push   -0x4(%ebp)
408c84:	68 04 01 00 00       	push   $0x104
408c89:	ff 77 10             	push   0x10(%edi)
408c8c:	ff 15 e8 b2 41 00    	call   *0x41b2e8
408c92:	ff 75 fc             	push   -0x4(%ebp)
408c95:	ff 15 24 b3 41 00    	call   *0x41b324
408c9b:	83 c4 14             	add    $0x14,%esp
408c9e:	8b 47 10             	mov    0x10(%edi),%eax
408ca1:	0f b7 00             	movzwl (%eax),%eax
408ca4:	eb 02                	jmp    0x408ca8
408ca6:	33 c0                	xor    %eax,%eax
408ca8:	5f                   	pop    %edi
408ca9:	c9                   	leave
408caa:	c2 04 00             	ret    $0x4
408cad:	cc                   	int3
408cae:	cc                   	int3
408caf:	cc                   	int3
408cb0:	8b ff                	mov    %edi,%edi
408cb2:	56                   	push   %esi
408cb3:	8b f1                	mov    %ecx,%esi
408cb5:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
408cb9:	74 25                	je     0x408ce0
408cbb:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
408cbf:	74 1f                	je     0x408ce0
408cc1:	ff 76 10             	push   0x10(%esi)
408cc4:	ff 76 04             	push   0x4(%esi)
408cc7:	ff 15 50 b2 41 00    	call   *0x41b250
408ccd:	6a 00                	push   $0x0
408ccf:	6a 01                	push   $0x1
408cd1:	8b ce                	mov    %esi,%ecx
408cd3:	e8 94 3f 00 00       	call   0x40cc6c
408cd8:	8b 4e 04             	mov    0x4(%esi),%ecx
408cdb:	e8 c4 6f 00 00       	call   0x40fca4
408ce0:	5e                   	pop    %esi
408ce1:	c2 04 00             	ret    $0x4
408ce4:	cc                   	int3
408ce5:	cc                   	int3
408ce6:	cc                   	int3
408ce7:	cc                   	int3
408ce8:	cc                   	int3
408ce9:	cc                   	int3
408cea:	cc                   	int3
408ceb:	cc                   	int3
408cec:	cc                   	int3
408ced:	cc                   	int3
408cee:	cc                   	int3
408cef:	cc                   	int3
408cf0:	8b ff                	mov    %edi,%edi
408cf2:	55                   	push   %ebp
408cf3:	8b ec                	mov    %esp,%ebp
408cf5:	51                   	push   %ecx
408cf6:	51                   	push   %ecx
408cf7:	8b 45 08             	mov    0x8(%ebp),%eax
408cfa:	8b d0                	mov    %eax,%edx
408cfc:	53                   	push   %ebx
408cfd:	56                   	push   %esi
408cfe:	57                   	push   %edi
408cff:	0f b7 c0             	movzwl %ax,%eax
408d02:	33 ff                	xor    %edi,%edi
408d04:	c1 ea 10             	shr    $0x10,%edx
408d07:	8b f1                	mov    %ecx,%esi
408d09:	85 c0                	test   %eax,%eax
408d0b:	0f 84 02 01 00 00    	je     0x408e13
408d11:	83 f8 02             	cmp    $0x2,%eax
408d14:	0f 86 e6 00 00 00    	jbe    0x408e00
408d1a:	3d 04 04 00 00       	cmp    $0x404,%eax
408d1f:	0f 85 ee 00 00 00    	jne    0x408e13
408d25:	83 c0 fc             	add    $0xfffffffc,%eax
408d28:	66 3b c2             	cmp    %dx,%ax
408d2b:	0f 85 e5 00 00 00    	jne    0x408e16
408d31:	68 08 02 00 00       	push   $0x208
408d36:	e8 51 a8 00 00       	call   0x41358c
408d3b:	8b d8                	mov    %eax,%ebx
408d3d:	59                   	pop    %ecx
408d3e:	85 db                	test   %ebx,%ebx
408d40:	0f 84 d0 00 00 00    	je     0x408e16
408d46:	68 04 01 00 00       	push   $0x104
408d4b:	53                   	push   %ebx
408d4c:	68 04 04 00 00       	push   $0x404
408d51:	ff 76 04             	push   0x4(%esi)
408d54:	ff 15 0c b2 41 00    	call   *0x41b20c
408d5a:	8d 45 fc             	lea    -0x4(%ebp),%eax
408d5d:	89 7d fc             	mov    %edi,-0x4(%ebp)
408d60:	50                   	push   %eax
408d61:	ba 04 01 00 00       	mov    $0x104,%edx
408d66:	8b cb                	mov    %ebx,%ecx
408d68:	e8 06 01 00 00       	call   0x408e73
408d6d:	85 c0                	test   %eax,%eax
408d6f:	0f 88 81 00 00 00    	js     0x408df6
408d75:	8b cf                	mov    %edi,%ecx
408d77:	39 4d fc             	cmp    %ecx,-0x4(%ebp)
408d7a:	7e 2a                	jle    0x408da6
408d7c:	8b c3                	mov    %ebx,%eax
408d7e:	0f b7 10             	movzwl (%eax),%edx
408d81:	c7 45 f8 20 00 00 00 	movl   $0x20,-0x8(%ebp)
408d88:	66 39 55 f8          	cmp    %dx,-0x8(%ebp)
408d8c:	74 0d                	je     0x408d9b
408d8e:	c7 45 f8 00 30 00 00 	movl   $0x3000,-0x8(%ebp)
408d95:	66 39 55 f8          	cmp    %dx,-0x8(%ebp)
408d99:	75 2a                	jne    0x408dc5
408d9b:	41                   	inc    %ecx
408d9c:	83 c0 02             	add    $0x2,%eax
408d9f:	3b 4d fc             	cmp    -0x4(%ebp),%ecx
408da2:	7c da                	jl     0x408d7e
408da4:	8b cf                	mov    %edi,%ecx
408da6:	8b 46 0c             	mov    0xc(%esi),%eax
408da9:	85 c0                	test   %eax,%eax
408dab:	74 49                	je     0x408df6
408dad:	85 c9                	test   %ecx,%ecx
408daf:	74 18                	je     0x408dc9
408db1:	6a ff                	push   $0xffffffff
408db3:	51                   	push   %ecx
408db4:	68 04 01 00 00       	push   $0x104
408db9:	50                   	push   %eax
408dba:	ff 15 e8 b2 41 00    	call   *0x41b2e8
408dc0:	83 c4 10             	add    $0x10,%esp
408dc3:	eb 09                	jmp    0x408dce
408dc5:	8b c8                	mov    %eax,%ecx
408dc7:	eb dd                	jmp    0x408da6
408dc9:	33 c9                	xor    %ecx,%ecx
408dcb:	66 89 08             	mov    %cx,(%eax)
408dce:	8b 4e 0c             	mov    0xc(%esi),%ecx
408dd1:	8d 45 fc             	lea    -0x4(%ebp),%eax
408dd4:	50                   	push   %eax
408dd5:	ba 04 01 00 00       	mov    $0x104,%edx
408dda:	e8 94 00 00 00       	call   0x408e73
408ddf:	85 c0                	test   %eax,%eax
408de1:	78 13                	js     0x408df6
408de3:	33 c0                	xor    %eax,%eax
408de5:	8b ce                	mov    %esi,%ecx
408de7:	3b 45 fc             	cmp    -0x4(%ebp),%eax
408dea:	1b c0                	sbb    %eax,%eax
408dec:	f7 d8                	neg    %eax
408dee:	50                   	push   %eax
408def:	6a 01                	push   $0x1
408df1:	e8 76 3e 00 00       	call   0x40cc6c
408df6:	53                   	push   %ebx
408df7:	ff 15 24 b3 41 00    	call   *0x41b324
408dfd:	59                   	pop    %ecx
408dfe:	eb 16                	jmp    0x408e16
408e00:	33 c9                	xor    %ecx,%ecx
408e02:	66 3b ca             	cmp    %dx,%cx
408e05:	75 0f                	jne    0x408e16
408e07:	50                   	push   %eax
408e08:	ff 76 04             	push   0x4(%esi)
408e0b:	ff 15 b8 b2 41 00    	call   *0x41b2b8
408e11:	eb 03                	jmp    0x408e16
408e13:	33 ff                	xor    %edi,%edi
408e15:	47                   	inc    %edi
408e16:	8b c7                	mov    %edi,%eax
408e18:	5f                   	pop    %edi
408e19:	5e                   	pop    %esi
408e1a:	5b                   	pop    %ebx
408e1b:	c9                   	leave
408e1c:	c2 08 00             	ret    $0x8
408e1f:	8b ff                	mov    %edi,%edi
408e21:	55                   	push   %ebp
408e22:	8b ec                	mov    %esp,%ebp
408e24:	51                   	push   %ecx
408e25:	56                   	push   %esi
408e26:	8b 75 08             	mov    0x8(%ebp),%esi
408e29:	57                   	push   %edi
408e2a:	8b f9                	mov    %ecx,%edi
408e2c:	85 f6                	test   %esi,%esi
408e2e:	74 3d                	je     0x408e6d
408e30:	8b 4f 0c             	mov    0xc(%edi),%ecx
408e33:	85 c9                	test   %ecx,%ecx
408e35:	74 36                	je     0x408e6d
408e37:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
408e3b:	8d 45 fc             	lea    -0x4(%ebp),%eax
408e3e:	53                   	push   %ebx