40abca:	b8 03 40 00 80       	mov    $0x80004003,%eax
40abcf:	eb eb                	jmp    0x40abbc
40abd1:	6a 30                	push   $0x30
40abd3:	b8 37 ee 41 00       	mov    $0x41ee37,%eax
40abd8:	e8 31 02 01 00       	call   0x41ae0e
40abdd:	33 db                	xor    %ebx,%ebx
40abdf:	21 5d e8             	and    %ebx,-0x18(%ebp)
40abe2:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40abe5:	21 5d fc             	and    %ebx,-0x4(%ebp)
40abe8:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40abeb:	e8 5f 13 01 00       	call   0x41bf4f
40abf0:	50                   	push   %eax
40abf1:	6a 08                	push   $0x8
40abf3:	ff 15 e8 a1 43 00    	call   *0x43a1e8
40abf9:	50                   	push   %eax
40abfa:	ff 15 ec a1 43 00    	call   *0x43a1ec
40ac00:	85 c0                	test   %eax,%eax
40ac02:	75 1e                	jne    0x40ac22
40ac04:	ff 15 a8 a0 43 00    	call   *0x43a0a8
40ac0a:	8b d8                	mov    %eax,%ebx
40ac0c:	85 db                	test   %ebx,%ebx
40ac0e:	0f 8e db 02 00 00    	jle    0x40aeef
40ac14:	0f b7 db             	movzwl %bx,%ebx
40ac17:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
40ac1d:	e9 cd 02 00 00       	jmp    0x40aeef
40ac22:	33 ff                	xor    %edi,%edi
40ac24:	89 7d e0             	mov    %edi,-0x20(%ebp)
40ac27:	33 f6                	xor    %esi,%esi
40ac29:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40ac2c:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ac2f:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40ac33:	50                   	push   %eax
40ac34:	56                   	push   %esi
40ac35:	56                   	push   %esi
40ac36:	6a 01                	push   $0x1
40ac38:	ff 75 e8             	push   -0x18(%ebp)
40ac3b:	ff 15 e0 a3 43 00    	call   *0x43a3e0
40ac41:	ff 15 a8 a0 43 00    	call   *0x43a0a8
40ac47:	83 f8 7a             	cmp    $0x7a,%eax
40ac4a:	74 13                	je     0x40ac5f
40ac4c:	85 c0                	test   %eax,%eax
40ac4e:	7f 04                	jg     0x40ac54
40ac50:	8b d8                	mov    %eax,%ebx
40ac52:	eb 2c                	jmp    0x40ac80
40ac54:	0f b7 d8             	movzwl %ax,%ebx
40ac57:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
40ac5d:	eb 21                	jmp    0x40ac80
40ac5f:	ff 75 ec             	push   -0x14(%ebp)
40ac62:	8b 3d 3c 1a 40 00    	mov    0x401a3c,%edi
40ac68:	8b cf                	mov    %edi,%ecx
40ac6a:	ff 15 20 a5 43 00    	call   *0x43a520
40ac70:	ff d7                	call   *%edi
40ac72:	8b f8                	mov    %eax,%edi
40ac74:	89 7d e0             	mov    %edi,-0x20(%ebp)
40ac77:	85 ff                	test   %edi,%edi
40ac79:	75 10                	jne    0x40ac8b
40ac7b:	bb 0e 00 07 80       	mov    $0x8007000e,%ebx
40ac80:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40ac83:	85 db                	test   %ebx,%ebx
40ac85:	0f 88 c5 00 00 00    	js     0x40ad50
40ac8b:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ac8e:	50                   	push   %eax
40ac8f:	ff 75 ec             	push   -0x14(%ebp)
40ac92:	57                   	push   %edi
40ac93:	6a 01                	push   $0x1
40ac95:	ff 75 e8             	push   -0x18(%ebp)
40ac98:	ff 15 e0 a3 43 00    	call   *0x43a3e0
40ac9e:	85 c0                	test   %eax,%eax
40aca0:	75 1b                	jne    0x40acbd
40aca2:	ff 15 a8 a0 43 00    	call   *0x43a0a8
40aca8:	8b d8                	mov    %eax,%ebx
40acaa:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40acad:	85 db                	test   %ebx,%ebx
40acaf:	7e 0e                	jle    0x40acbf
40acb1:	0f b7 db             	movzwl %bx,%ebx
40acb4:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
40acba:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40acbd:	85 db                	test   %ebx,%ebx
40acbf:	0f 88 8b 00 00 00    	js     0x40ad50
40acc5:	8d 45 ec             	lea    -0x14(%ebp),%eax
40acc8:	50                   	push   %eax
40acc9:	6a 00                	push   $0x0
40accb:	6a 00                	push   $0x0
40accd:	6a 05                	push   $0x5
40accf:	ff 75 e8             	push   -0x18(%ebp)
40acd2:	ff 15 e0 a3 43 00    	call   *0x43a3e0
40acd8:	ff 15 a8 a0 43 00    	call   *0x43a0a8
40acde:	83 f8 7a             	cmp    $0x7a,%eax
40ace1:	74 13                	je     0x40acf6
40ace3:	85 c0                	test   %eax,%eax
40ace5:	7f 04                	jg     0x40aceb
40ace7:	8b d8                	mov    %eax,%ebx
40ace9:	eb 2c                	jmp    0x40ad17
40aceb:	0f b7 d8             	movzwl %ax,%ebx
40acee:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
40acf4:	eb 21                	jmp    0x40ad17
40acf6:	ff 75 ec             	push   -0x14(%ebp)
40acf9:	8b 35 3c 1a 40 00    	mov    0x401a3c,%esi
40acff:	8b ce                	mov    %esi,%ecx
40ad01:	ff 15 20 a5 43 00    	call   *0x43a520
40ad07:	ff d6                	call   *%esi
40ad09:	8b f0                	mov    %eax,%esi
40ad0b:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40ad0e:	85 f6                	test   %esi,%esi
40ad10:	75 08                	jne    0x40ad1a
40ad12:	bb 0e 00 07 80       	mov    $0x8007000e,%ebx
40ad17:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40ad1a:	85 db                	test   %ebx,%ebx
40ad1c:	78 32                	js     0x40ad50
40ad1e:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ad21:	50                   	push   %eax
40ad22:	ff 75 ec             	push   -0x14(%ebp)
40ad25:	56                   	push   %esi
40ad26:	6a 05                	push   $0x5
40ad28:	ff 75 e8             	push   -0x18(%ebp)
40ad2b:	ff 15 e0 a3 43 00    	call   *0x43a3e0
40ad31:	85 c0                	test   %eax,%eax
40ad33:	75 1b                	jne    0x40ad50
40ad35:	ff 15 a8 a0 43 00    	call   *0x43a0a8
40ad3b:	8b d8                	mov    %eax,%ebx
40ad3d:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40ad40:	85 db                	test   %ebx,%ebx
40ad42:	7e 0c                	jle    0x40ad50
40ad44:	0f b7 db             	movzwl %bx,%ebx
40ad47:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
40ad4d:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40ad50:	33 f6                	xor    %esi,%esi
40ad52:	89 75 dc             	mov    %esi,-0x24(%ebp)
40ad55:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40ad59:	85 db                	test   %ebx,%ebx
40ad5b:	0f 88 40 01 00 00    	js     0x40aea1
40ad61:	ff 37                	push   (%edi)
40ad63:	ff 15 d8 a3 43 00    	call   *0x43a3d8
40ad69:	8b 35 3c 1a 40 00    	mov    0x401a3c,%esi
40ad6f:	83 c0 10             	add    $0x10,%eax
40ad72:	50                   	push   %eax
40ad73:	8b ce                	mov    %esi,%ecx
40ad75:	89 45 d8             	mov    %eax,-0x28(%ebp)
40ad78:	ff 15 20 a5 43 00    	call   *0x43a520
40ad7e:	ff d6                	call   *%esi
40ad80:	8b f0                	mov    %eax,%esi
40ad82:	89 75 dc             	mov    %esi,-0x24(%ebp)
40ad85:	85 f6                	test   %esi,%esi
40ad87:	75 08                	jne    0x40ad91
40ad89:	bb 0e 00 07 80       	mov    $0x8007000e,%ebx
40ad8e:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40ad91:	85 db                	test   %ebx,%ebx
40ad93:	0f 88 08 01 00 00    	js     0x40aea1
40ad99:	6a 01                	push   $0x1
40ad9b:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40ad9e:	50                   	push   %eax
40ad9f:	ff 15 b8 a3 43 00    	call   *0x43a3b8
40ada5:	85 c0                	test   %eax,%eax
40ada7:	74 5e                	je     0x40ae07
40ada9:	6a 00                	push   $0x0
40adab:	ff 37                	push   (%edi)
40adad:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40adb0:	50                   	push   %eax
40adb1:	ff 15 a8 a3 43 00    	call   *0x43a3a8
40adb7:	85 c0                	test   %eax,%eax
40adb9:	74 4c                	je     0x40ae07
40adbb:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40adbe:	6a 00                	push   $0x0
40adc0:	ff 30                	push   (%eax)
40adc2:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40adc5:	50                   	push   %eax
40adc6:	ff 15 94 a3 43 00    	call   *0x43a394
40adcc:	85 c0                	test   %eax,%eax
40adce:	74 37                	je     0x40ae07
40add0:	6a 02                	push   $0x2
40add2:	ff 75 d8             	push   -0x28(%ebp)
40add5:	56                   	push   %esi
40add6:	ff 15 c4 a3 43 00    	call   *0x43a3c4
40addc:	85 c0                	test   %eax,%eax
40adde:	74 27                	je     0x40ae07
40ade0:	ff 37                	push   (%edi)
40ade2:	68 81 00 1f 00       	push   $0x1f0081
40ade7:	6a 02                	push   $0x2
40ade9:	56                   	push   %esi
40adea:	ff 15 bc a3 43 00    	call   *0x43a3bc
40adf0:	85 c0                	test   %eax,%eax
40adf2:	74 13                	je     0x40ae07
40adf4:	6a 00                	push   $0x0
40adf6:	56                   	push   %esi
40adf7:	6a 01                	push   $0x1
40adf9:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40adfc:	50                   	push   %eax
40adfd:	ff 15 d4 a3 43 00    	call   *0x43a3d4
40ae03:	85 c0                	test   %eax,%eax
40ae05:	75 1b                	jne    0x40ae22
40ae07:	ff 15 a8 a0 43 00    	call   *0x43a0a8
40ae0d:	8b d8                	mov    %eax,%ebx
40ae0f:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40ae12:	85 db                	test   %ebx,%ebx
40ae14:	7e 0e                	jle    0x40ae24
40ae16:	0f b7 db             	movzwl %bx,%ebx
40ae19:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
40ae1f:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40ae22:	85 db                	test   %ebx,%ebx
40ae24:	78 7b                	js     0x40aea1
40ae26:	68 f4 8a 43 00       	push   $0x438af4
40ae2b:	6a 00                	push   $0x0
40ae2d:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40ae30:	50                   	push   %eax
40ae31:	ff 15 d0 a3 43 00    	call   *0x43a3d0
40ae37:	85 c0                	test   %eax,%eax
40ae39:	75 5c                	jne    0x40ae97
40ae3b:	ff 15 a8 a0 43 00    	call   *0x43a0a8
40ae41:	83 f8 7a             	cmp    $0x7a,%eax
40ae44:	75 33                	jne    0x40ae79
40ae46:	ff 35 f4 8a 43 00    	push   0x438af4
40ae4c:	8b 1d 3c 1a 40 00    	mov    0x401a3c,%ebx
40ae52:	8b cb                	mov    %ebx,%ecx
40ae54:	ff 15 20 a5 43 00    	call   *0x43a520
40ae5a:	ff d3                	call   *%ebx
40ae5c:	a3 74 8a 43 00       	mov    %eax,0x438a74
40ae61:	85 c0                	test   %eax,%eax
40ae63:	74 2b                	je     0x40ae90
40ae65:	68 f4 8a 43 00       	push   $0x438af4
40ae6a:	50                   	push   %eax
40ae6b:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40ae6e:	50                   	push   %eax
40ae6f:	ff 15 d0 a3 43 00    	call   *0x43a3d0
40ae75:	85 c0                	test   %eax,%eax
40ae77:	75 25                	jne    0x40ae9e
40ae79:	ff 15 a8 a0 43 00    	call   *0x43a0a8
40ae7f:	8b d8                	mov    %eax,%ebx
40ae81:	85 db                	test   %ebx,%ebx
40ae83:	7e 1c                	jle    0x40aea1
40ae85:	0f b7 db             	movzwl %bx,%ebx
40ae88:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
40ae8e:	eb 11                	jmp    0x40aea1
40ae90:	bb 0e 00 07 80       	mov    $0x8007000e,%ebx
40ae95:	eb 0a                	jmp    0x40aea1
40ae97:	bb 05 40 00 80       	mov    $0x80004005,%ebx
40ae9c:	eb 03                	jmp    0x40aea1
40ae9e:	8b 5d f0             	mov    -0x10(%ebp),%ebx
40aea1:	85 f6                	test   %esi,%esi
40aea3:	74 15                	je     0x40aeba
40aea5:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40aea9:	56                   	push   %esi
40aeaa:	8b 35 40 1a 40 00    	mov    0x401a40,%esi
40aeb0:	8b ce                	mov    %esi,%ecx
40aeb2:	ff 15 20 a5 43 00    	call   *0x43a520
40aeb8:	ff d6                	call   *%esi
40aeba:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40aebd:	85 c0                	test   %eax,%eax
40aebf:	74 15                	je     0x40aed6
40aec1:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
40aec5:	8b 35 40 1a 40 00    	mov    0x401a40,%esi
40aecb:	8b ce                	mov    %esi,%ecx
40aecd:	50                   	push   %eax
40aece:	ff 15 20 a5 43 00    	call   *0x43a520
40aed4:	ff d6                	call   *%esi
40aed6:	85 ff                	test   %edi,%edi
40aed8:	74 15                	je     0x40aeef
40aeda:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
40aede:	8b 35 40 1a 40 00    	mov    0x401a40,%esi
40aee4:	8b ce                	mov    %esi,%ecx
40aee6:	57                   	push   %edi
40aee7:	ff 15 20 a5 43 00    	call   *0x43a520
40aeed:	ff d6                	call   *%esi
40aeef:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40aef3:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40aef6:	85 c9                	test   %ecx,%ecx
40aef8:	74 1c                	je     0x40af16
40aefa:	83 f9 ff             	cmp    $0xffffffff,%ecx
40aefd:	74 17                	je     0x40af16
40aeff:	89 4d d8             	mov    %ecx,-0x28(%ebp)
40af02:	8d 55 d8             	lea    -0x28(%ebp),%edx
40af05:	8b 0d 10 a1 43 00    	mov    0x43a110,%ecx
40af0b:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40af0e:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40af11:	e8 4e 07 01 00       	call   0x41b664
40af16:	8b c3                	mov    %ebx,%eax
40af18:	e8 bf fe 00 00       	call   0x41addc
40af1d:	c3                   	ret
40af1e:	8b ff                	mov    %edi,%edi
40af20:	55                   	push   %ebp
40af21:	8b ec                	mov    %esp,%ebp
40af23:	57                   	push   %edi
40af24:	8b b9 80 00 00 00    	mov    0x80(%ecx),%edi
40af2a:	85 ff                	test   %edi,%edi
40af2c:	78 21                	js     0x40af4f
40af2e:	8b 51 74             	mov    0x74(%ecx),%edx
40af31:	85 d2                	test   %edx,%edx
40af33:	74 21                	je     0x40af56
40af35:	8b 45 08             	mov    0x8(%ebp),%eax
40af38:	56                   	push   %esi
40af39:	89 10                	mov    %edx,(%eax)
40af3b:	8b 49 74             	mov    0x74(%ecx),%ecx
40af3e:	51                   	push   %ecx
40af3f:	8b 11                	mov    (%ecx),%edx
40af41:	8b 72 04             	mov    0x4(%edx),%esi
40af44:	8b ce                	mov    %esi,%ecx
40af46:	ff 15 20 a5 43 00    	call   *0x43a520
40af4c:	ff d6                	call   *%esi
40af4e:	5e                   	pop    %esi
40af4f:	8b c7                	mov    %edi,%eax
40af51:	5f                   	pop    %edi
40af52:	5d                   	pop    %ebp
40af53:	c2 04 00             	ret    $0x4
40af56:	bf 02 40 00 80       	mov    $0x80004002,%edi
40af5b:	eb f2                	jmp    0x40af4f
40af5d:	0f b7 01             	movzwl (%ecx),%eax
40af60:	83 f8 12             	cmp    $0x12,%eax
40af63:	0f 87 1e 89 01 00    	ja     0x423887
40af69:	74 2a                	je     0x40af95
40af6b:	48                   	dec    %eax
40af6c:	83 e8 01             	sub    $0x1,%eax
40af6f:	74 1e                	je     0x40af8f
40af71:	83 e8 01             	sub    $0x1,%eax
40af74:	0f 85 e4 88 01 00    	jne    0x42385e
40af7a:	8b 41 08             	mov    0x8(%ecx),%eax
40af7d:	99                   	cltd
40af7e:	56                   	push   %esi
40af7f:	6a 14                	push   $0x14
40af81:	5e                   	pop    %esi
40af82:	66 89 31             	mov    %si,(%ecx)
40af85:	89 41 08             	mov    %eax,0x8(%ecx)
40af88:	89 51 0c             	mov    %edx,0xc(%ecx)
40af8b:	5e                   	pop    %esi
40af8c:	33 c0                	xor    %eax,%eax
40af8e:	c3                   	ret
40af8f:	0f bf 41 08          	movswl 0x8(%ecx),%eax
40af93:	eb e8                	jmp    0x40af7d
40af95:	0f b7 41 08          	movzwl 0x8(%ecx),%eax
40af99:	eb e2                	jmp    0x40af7d
40af9b:	8b ff                	mov    %edi,%edi
40af9d:	55                   	push   %ebp
40af9e:	8b ec                	mov    %esp,%ebp
40afa0:	56                   	push   %esi
40afa1:	8b f1                	mov    %ecx,%esi
40afa3:	e8 47 0c 00 00       	call   0x40bbef
40afa8:	0f b7 86 a4 01 00 00 	movzwl 0x1a4(%esi),%eax
40afaf:	8d 4e 0c             	lea    0xc(%esi),%ecx
40afb2:	50                   	push   %eax
40afb3:	0f b7 86 a2 01 00 00 	movzwl 0x1a2(%esi),%eax
40afba:	50                   	push   %eax
40afbb:	ff 75 08             	push   0x8(%ebp)
40afbe:	e8 58 10 00 00       	call   0x40c01b
40afc3:	8b 45 08             	mov    0x8(%ebp),%eax
40afc6:	5e                   	pop    %esi
40afc7:	5d                   	pop    %ebp
40afc8:	c2 04 00             	ret    $0x4
40afcb:	cc                   	int3
40afcc:	cc                   	int3
40afcd:	cc                   	int3
40afce:	cc                   	int3
40afcf:	cc                   	int3