40a99b:	89 46 5c             	mov    %eax,0x5c(%esi)
40a99e:	8b 45 18             	mov    0x18(%ebp),%eax
40a9a1:	89 7e 58             	mov    %edi,0x58(%esi)
40a9a4:	89 5e 60             	mov    %ebx,0x60(%esi)
40a9a7:	c6 46 64 00          	movb   $0x0,0x64(%esi)
40a9ab:	89 46 68             	mov    %eax,0x68(%esi)
40a9ae:	f6 47 08 08          	testb  $0x8,0x8(%edi)
40a9b2:	74 05                	je     0x40a9b9
40a9b4:	f6 c3 10             	test   $0x10,%bl
40a9b7:	74 02                	je     0x40a9bb
40a9b9:	32 d2                	xor    %dl,%dl
40a9bb:	8b 45 10             	mov    0x10(%ebp),%eax
40a9be:	51                   	push   %ecx
40a9bf:	88 56 6c             	mov    %dl,0x6c(%esi)
40a9c2:	89 46 70             	mov    %eax,0x70(%esi)
40a9c5:	ff 77 18             	push   0x18(%edi)
40a9c8:	e8 44 b3 ff ff       	call   0x405d11
40a9cd:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40a9d1:	8b c6                	mov    %esi,%eax
40a9d3:	e8 3b 50 03 00       	call   0x43fa13
40a9d8:	c2 1c 00             	ret    $0x1c
40a9db:	6a 04                	push   $0x4
40a9dd:	b8 8d b2 48 00       	mov    $0x48b28d,%eax
40a9e2:	e8 63 50 03 00       	call   0x43fa4a
40a9e7:	8b f1                	mov    %ecx,%esi
40a9e9:	89 75 f0             	mov    %esi,-0x10(%ebp)
40a9ec:	e8 04 05 00 00       	call   0x40aef5
40a9f1:	33 db                	xor    %ebx,%ebx
40a9f3:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a9f6:	8d 4e 20             	lea    0x20(%esi),%ecx
40a9f9:	e8 f7 04 00 00       	call   0x40aef5
40a9fe:	33 d2                	xor    %edx,%edx
40aa00:	42                   	inc    %edx
40aa01:	88 55 fc             	mov    %dl,-0x4(%ebp)
40aa04:	8d 4e 40             	lea    0x40(%esi),%ecx
40aa07:	89 19                	mov    %ebx,(%ecx)
40aa09:	89 59 04             	mov    %ebx,0x4(%ecx)
40aa0c:	89 59 08             	mov    %ebx,0x8(%ecx)
40aa0f:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40aa13:	8b 45 0c             	mov    0xc(%ebp),%eax
40aa16:	8b 7d 14             	mov    0x14(%ebp),%edi
40aa19:	89 5e 4c             	mov    %ebx,0x4c(%esi)
40aa1c:	8b 5d 20             	mov    0x20(%ebp),%ebx
40aa1f:	89 46 50             	mov    %eax,0x50(%esi)
40aa22:	8b 45 08             	mov    0x8(%ebp),%eax
40aa25:	89 46 54             	mov    %eax,0x54(%esi)
40aa28:	8b 45 1c             	mov    0x1c(%ebp),%eax
40aa2b:	89 46 5c             	mov    %eax,0x5c(%esi)
40aa2e:	8b 45 18             	mov    0x18(%ebp),%eax
40aa31:	89 7e 58             	mov    %edi,0x58(%esi)
40aa34:	89 5e 60             	mov    %ebx,0x60(%esi)
40aa37:	c6 46 64 00          	movb   $0x0,0x64(%esi)
40aa3b:	89 46 68             	mov    %eax,0x68(%esi)
40aa3e:	f6 47 08 08          	testb  $0x8,0x8(%edi)
40aa42:	74 05                	je     0x40aa49
40aa44:	f6 c3 10             	test   $0x10,%bl
40aa47:	74 02                	je     0x40aa4b
40aa49:	32 d2                	xor    %dl,%dl
40aa4b:	8b 45 10             	mov    0x10(%ebp),%eax
40aa4e:	51                   	push   %ecx
40aa4f:	88 56 6c             	mov    %dl,0x6c(%esi)
40aa52:	89 46 70             	mov    %eax,0x70(%esi)
40aa55:	ff 77 18             	push   0x18(%edi)
40aa58:	e8 b4 b2 ff ff       	call   0x405d11
40aa5d:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40aa61:	8b c6                	mov    %esi,%eax
40aa63:	e8 ab 4f 03 00       	call   0x43fa13
40aa68:	c2 1c 00             	ret    $0x1c
40aa6b:	6a 04                	push   $0x4
40aa6d:	b8 c6 b2 48 00       	mov    $0x48b2c6,%eax
40aa72:	e8 d3 4f 03 00       	call   0x43fa4a
40aa77:	8b f1                	mov    %ecx,%esi
40aa79:	89 75 f0             	mov    %esi,-0x10(%ebp)
40aa7c:	e8 dc 04 00 00       	call   0x40af5d
40aa81:	33 db                	xor    %ebx,%ebx
40aa83:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40aa86:	8d 4e 20             	lea    0x20(%esi),%ecx
40aa89:	e8 cf 04 00 00       	call   0x40af5d
40aa8e:	33 d2                	xor    %edx,%edx
40aa90:	42                   	inc    %edx
40aa91:	88 55 fc             	mov    %dl,-0x4(%ebp)
40aa94:	8d 4e 40             	lea    0x40(%esi),%ecx
40aa97:	89 19                	mov    %ebx,(%ecx)
40aa99:	89 59 04             	mov    %ebx,0x4(%ecx)
40aa9c:	89 59 08             	mov    %ebx,0x8(%ecx)
40aa9f:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40aaa3:	8b 45 0c             	mov    0xc(%ebp),%eax
40aaa6:	8b 7d 14             	mov    0x14(%ebp),%edi
40aaa9:	89 5e 4c             	mov    %ebx,0x4c(%esi)
40aaac:	8b 5d 20             	mov    0x20(%ebp),%ebx
40aaaf:	89 46 50             	mov    %eax,0x50(%esi)
40aab2:	8b 45 08             	mov    0x8(%ebp),%eax
40aab5:	89 46 54             	mov    %eax,0x54(%esi)
40aab8:	8b 45 1c             	mov    0x1c(%ebp),%eax
40aabb:	89 46 5c             	mov    %eax,0x5c(%esi)
40aabe:	8b 45 18             	mov    0x18(%ebp),%eax
40aac1:	89 7e 58             	mov    %edi,0x58(%esi)
40aac4:	89 5e 60             	mov    %ebx,0x60(%esi)
40aac7:	c6 46 64 00          	movb   $0x0,0x64(%esi)
40aacb:	89 46 68             	mov    %eax,0x68(%esi)
40aace:	f6 47 08 08          	testb  $0x8,0x8(%edi)
40aad2:	74 05                	je     0x40aad9
40aad4:	f6 c3 10             	test   $0x10,%bl
40aad7:	74 02                	je     0x40aadb
40aad9:	32 d2                	xor    %dl,%dl
40aadb:	8b 45 10             	mov    0x10(%ebp),%eax
40aade:	51                   	push   %ecx
40aadf:	88 56 6c             	mov    %dl,0x6c(%esi)
40aae2:	89 46 70             	mov    %eax,0x70(%esi)
40aae5:	ff 77 18             	push   0x18(%edi)
40aae8:	e8 24 b2 ff ff       	call   0x405d11
40aaed:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40aaf1:	8b c6                	mov    %esi,%eax
40aaf3:	e8 1b 4f 03 00       	call   0x43fa13
40aaf8:	c2 1c 00             	ret    $0x1c
40aafb:	6a 04                	push   $0x4
40aafd:	b8 e9 b2 48 00       	mov    $0x48b2e9,%eax
40ab02:	e8 43 4f 03 00       	call   0x43fa4a
40ab07:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40ab0a:	8b 45 08             	mov    0x8(%ebp),%eax
40ab0d:	33 d2                	xor    %edx,%edx
40ab0f:	89 41 04             	mov    %eax,0x4(%ecx)
40ab12:	8b 45 0c             	mov    0xc(%ebp),%eax
40ab15:	c7 01 7c 4b 49 00    	movl   $0x494b7c,(%ecx)
40ab1b:	89 41 08             	mov    %eax,0x8(%ecx)
40ab1e:	89 51 0c             	mov    %edx,0xc(%ecx)
40ab21:	89 51 10             	mov    %edx,0x10(%ecx)
40ab24:	89 55 fc             	mov    %edx,-0x4(%ebp)
40ab27:	33 c0                	xor    %eax,%eax
40ab29:	c7 01 10 64 49 00    	movl   $0x496410,(%ecx)
40ab2f:	89 51 14             	mov    %edx,0x14(%ecx)
40ab32:	89 51 18             	mov    %edx,0x18(%ecx)
40ab35:	89 51 1c             	mov    %edx,0x1c(%ecx)
40ab38:	89 51 20             	mov    %edx,0x20(%ecx)
40ab3b:	66 89 41 24          	mov    %ax,0x24(%ecx)
40ab3f:	89 51 28             	mov    %edx,0x28(%ecx)
40ab42:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40ab46:	8b c1                	mov    %ecx,%eax
40ab48:	e8 c6 4e 03 00       	call   0x43fa13
40ab4d:	c2 08 00             	ret    $0x8
40ab50:	6a 04                	push   $0x4
40ab52:	b8 0c b3 48 00       	mov    $0x48b30c,%eax
40ab57:	e8 ee 4e 03 00       	call   0x43fa4a
40ab5c:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40ab5f:	8b 45 08             	mov    0x8(%ebp),%eax
40ab62:	33 d2                	xor    %edx,%edx
40ab64:	89 41 04             	mov    %eax,0x4(%ecx)
40ab67:	8b 45 0c             	mov    0xc(%ebp),%eax
40ab6a:	c7 01 7c 4b 49 00    	movl   $0x494b7c,(%ecx)
40ab70:	89 41 08             	mov    %eax,0x8(%ecx)
40ab73:	89 51 0c             	mov    %edx,0xc(%ecx)
40ab76:	89 51 10             	mov    %edx,0x10(%ecx)
40ab79:	89 55 fc             	mov    %edx,-0x4(%ebp)
40ab7c:	33 c0                	xor    %eax,%eax
40ab7e:	c7 01 cc 65 49 00    	movl   $0x4965cc,(%ecx)
40ab84:	89 51 14             	mov    %edx,0x14(%ecx)
40ab87:	89 51 18             	mov    %edx,0x18(%ecx)
40ab8a:	89 51 1c             	mov    %edx,0x1c(%ecx)
40ab8d:	89 51 20             	mov    %edx,0x20(%ecx)
40ab90:	66 89 41 24          	mov    %ax,0x24(%ecx)
40ab94:	89 51 28             	mov    %edx,0x28(%ecx)
40ab97:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40ab9b:	8b c1                	mov    %ecx,%eax
40ab9d:	e8 71 4e 03 00       	call   0x43fa13
40aba2:	c2 08 00             	ret    $0x8
40aba5:	6a 04                	push   $0x4
40aba7:	b8 3a b3 48 00       	mov    $0x48b33a,%eax
40abac:	e8 99 4e 03 00       	call   0x43fa4a
40abb1:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40abb4:	8b 45 08             	mov    0x8(%ebp),%eax
40abb7:	89 41 08             	mov    %eax,0x8(%ecx)
40abba:	33 c0                	xor    %eax,%eax
40abbc:	c7 01 7c 4b 49 00    	movl   $0x494b7c,(%ecx)
40abc2:	c7 41 04 06 00 00 00 	movl   $0x6,0x4(%ecx)
40abc9:	89 41 0c             	mov    %eax,0xc(%ecx)
40abcc:	89 41 10             	mov    %eax,0x10(%ecx)
40abcf:	89 45 fc             	mov    %eax,-0x4(%ebp)
40abd2:	c7 01 08 64 49 00    	movl   $0x496408,(%ecx)
40abd8:	89 41 14             	mov    %eax,0x14(%ecx)
40abdb:	89 41 18             	mov    %eax,0x18(%ecx)
40abde:	89 41 1c             	mov    %eax,0x1c(%ecx)
40abe1:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40abe5:	8b c1                	mov    %ecx,%eax
40abe7:	e8 27 4e 03 00       	call   0x43fa13
40abec:	c2 04 00             	ret    $0x4
40abef:	6a 04                	push   $0x4
40abf1:	b8 68 b3 48 00       	mov    $0x48b368,%eax
40abf6:	e8 4f 4e 03 00       	call   0x43fa4a
40abfb:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40abfe:	8b 45 08             	mov    0x8(%ebp),%eax
40ac01:	89 41 08             	mov    %eax,0x8(%ecx)
40ac04:	33 c0                	xor    %eax,%eax
40ac06:	c7 01 7c 4b 49 00    	movl   $0x494b7c,(%ecx)
40ac0c:	c7 41 04 06 00 00 00 	movl   $0x6,0x4(%ecx)
40ac13:	89 41 0c             	mov    %eax,0xc(%ecx)
40ac16:	89 41 10             	mov    %eax,0x10(%ecx)
40ac19:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ac1c:	c7 01 c4 65 49 00    	movl   $0x4965c4,(%ecx)
40ac22:	89 41 14             	mov    %eax,0x14(%ecx)
40ac25:	89 41 18             	mov    %eax,0x18(%ecx)
40ac28:	89 41 1c             	mov    %eax,0x1c(%ecx)
40ac2b:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40ac2f:	8b c1                	mov    %ecx,%eax
40ac31:	e8 dd 4d 03 00       	call   0x43fa13
40ac36:	c2 04 00             	ret    $0x4
40ac39:	6a 04                	push   $0x4
40ac3b:	b8 8e b3 48 00       	mov    $0x48b38e,%eax
40ac40:	e8 05 4e 03 00       	call   0x43fa4a
40ac45:	8b d9                	mov    %ecx,%ebx
40ac47:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40ac4a:	8b 45 0c             	mov    0xc(%ebp),%eax
40ac4d:	8d 4b 14             	lea    0x14(%ebx),%ecx
40ac50:	89 03                	mov    %eax,(%ebx)
40ac52:	33 f6                	xor    %esi,%esi
40ac54:	89 43 04             	mov    %eax,0x4(%ebx)
40ac57:	8b 45 10             	mov    0x10(%ebp),%eax
40ac5a:	89 43 08             	mov    %eax,0x8(%ebx)
40ac5d:	8d 45 0f             	lea    0xf(%ebp),%eax
40ac60:	50                   	push   %eax
40ac61:	56                   	push   %esi
40ac62:	89 73 0c             	mov    %esi,0xc(%ebx)
40ac65:	89 73 10             	mov    %esi,0x10(%ebx)
40ac68:	e8 04 10 00 00       	call   0x40bc71
40ac6d:	89 75 fc             	mov    %esi,-0x4(%ebp)
40ac70:	8d 4b 24             	lea    0x24(%ebx),%ecx
40ac73:	8b 7d 14             	mov    0x14(%ebp),%edi
40ac76:	8b 75 08             	mov    0x8(%ebp),%esi
40ac79:	57                   	push   %edi
40ac7a:	56                   	push   %esi
40ac7b:	e8 0a fc ff ff       	call   0x40a88a
40ac80:	89 7b 40             	mov    %edi,0x40(%ebx)
40ac83:	83 e7 3f             	and    $0x3f,%edi
40ac86:	89 73 3c             	mov    %esi,0x3c(%ebx)
40ac89:	83 ff 01             	cmp    $0x1,%edi
40ac8c:	74 43                	je     0x40acd1
40ac8e:	85 ff                	test   %edi,%edi
40ac90:	74 3f                	je     0x40acd1
40ac92:	83 ff 02             	cmp    $0x2,%edi
40ac95:	75 07                	jne    0x40ac9e
40ac97:	b8 00 03 00 6e       	mov    $0x6e000300,%eax
40ac9c:	eb 38                	jmp    0x40acd6
40ac9e:	83 ff 04             	cmp    $0x4,%edi
40aca1:	75 07                	jne    0x40acaa
40aca3:	b8 1b 00 80 70       	mov    $0x7080001b,%eax
40aca8:	eb 2c                	jmp    0x40acd6
40acaa:	83 ff 08             	cmp    $0x8,%edi
40acad:	75 07                	jne    0x40acb6
40acaf:	b8 1b a0 81 71       	mov    $0x7181a01b,%eax
40acb4:	eb 20                	jmp    0x40acd6
40acb6:	83 ff 10             	cmp    $0x10,%edi
40acb9:	75 07                	jne    0x40acc2
40acbb:	b8 04 03 08 6e       	mov    $0x6e080304,%eax
40acc0:	eb 14                	jmp    0x40acd6
40acc2:	33 c0                	xor    %eax,%eax
40acc4:	b9 1f 00 88 70       	mov    $0x7088001f,%ecx
40acc9:	83 ff 20             	cmp    $0x20,%edi
40accc:	0f 44 c1             	cmove  %ecx,%eax
40accf:	eb 05                	jmp    0x40acd6
40acd1:	b8 fb 5d 77 08       	mov    $0x8775dfb,%eax
40acd6:	89 43 50             	mov    %eax,0x50(%ebx)
40acd9:	a9 00 00 00 40       	test   $0x40000000,%eax
40acde:	74 07                	je     0x40ace7
40ace0:	8b 43 24             	mov    0x24(%ebx),%eax
40ace3:	83 48 08 08          	orl    $0x8,0x8(%eax)
40ace7:	8b cb                	mov    %ebx,%ecx
40ace9:	e8 3a 26 01 00       	call   0x41d328
40acee:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40acf2:	8b c3                	mov    %ebx,%eax
40acf4:	e8 1a 4d 03 00       	call   0x43fa13
40acf9:	c2 10 00             	ret    $0x10
40acfc:	6a 04                	push   $0x4
40acfe:	b8 b4 b3 48 00       	mov    $0x48b3b4,%eax
40ad03:	e8 42 4d 03 00       	call   0x43fa4a
40ad08:	8b d9                	mov    %ecx,%ebx
40ad0a:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40ad0d:	8b 45 0c             	mov    0xc(%ebp),%eax
40ad10:	8d 4b 14             	lea    0x14(%ebx),%ecx
40ad13:	89 03                	mov    %eax,(%ebx)
40ad15:	33 f6                	xor    %esi,%esi
40ad17:	89 43 04             	mov    %eax,0x4(%ebx)
40ad1a:	8b 45 10             	mov    0x10(%ebp),%eax
40ad1d:	89 43 08             	mov    %eax,0x8(%ebx)
40ad20:	8d 45 0f             	lea    0xf(%ebp),%eax
40ad23:	50                   	push   %eax
40ad24:	56                   	push   %esi
40ad25:	89 73 0c             	mov    %esi,0xc(%ebx)
40ad28:	89 73 10             	mov    %esi,0x10(%ebx)
40ad2b:	e8 41 0f 00 00       	call   0x40bc71
40ad30:	89 75 fc             	mov    %esi,-0x4(%ebp)
40ad33:	8d 4b 24             	lea    0x24(%ebx),%ecx
40ad36:	8b 7d 14             	mov    0x14(%ebp),%edi
40ad39:	8b 75 08             	mov    0x8(%ebp),%esi
40ad3c:	57                   	push   %edi
40ad3d:	56                   	push   %esi
40ad3e:	e8 a9 fb ff ff       	call   0x40a8ec
40ad43:	89 7b 40             	mov    %edi,0x40(%ebx)
40ad46:	83 e7 3f             	and    $0x3f,%edi
40ad49:	89 73 3c             	mov    %esi,0x3c(%ebx)
40ad4c:	83 ff 01             	cmp    $0x1,%edi
40ad4f:	74 43                	je     0x40ad94
40ad51:	85 ff                	test   %edi,%edi
40ad53:	74 3f                	je     0x40ad94
40ad55:	83 ff 02             	cmp    $0x2,%edi
40ad58:	75 07                	jne    0x40ad61
40ad5a:	b8 00 03 00 6e       	mov    $0x6e000300,%eax
40ad5f:	eb 38                	jmp    0x40ad99
40ad61:	83 ff 04             	cmp    $0x4,%edi
40ad64:	75 07                	jne    0x40ad6d
40ad66:	b8 1b 00 80 70       	mov    $0x7080001b,%eax
40ad6b:	eb 2c                	jmp    0x40ad99
40ad6d:	83 ff 08             	cmp    $0x8,%edi
40ad70:	75 07                	jne    0x40ad79
40ad72:	b8 1b a0 81 71       	mov    $0x7181a01b,%eax
40ad77:	eb 20                	jmp    0x40ad99
40ad79:	83 ff 10             	cmp    $0x10,%edi
40ad7c:	75 07                	jne    0x40ad85
40ad7e:	b8 04 03 08 6e       	mov    $0x6e080304,%eax
40ad83:	eb 14                	jmp    0x40ad99
40ad85:	33 c0                	xor    %eax,%eax
40ad87:	b9 1f 00 88 70       	mov    $0x7088001f,%ecx
40ad8c:	83 ff 20             	cmp    $0x20,%edi
40ad8f:	0f 44 c1             	cmove  %ecx,%eax
40ad92:	eb 05                	jmp    0x40ad99
40ad94:	b8 fb 5d 77 08       	mov    $0x8775dfb,%eax
40ad99:	89 43 50             	mov    %eax,0x50(%ebx)
40ad9c:	a9 00 00 00 40       	test   $0x40000000,%eax
40ada1:	74 07                	je     0x40adaa
40ada3:	8b 43 24             	mov    0x24(%ebx),%eax
40ada6:	83 48 08 08          	orl    $0x8,0x8(%eax)
40adaa:	8b cb                	mov    %ebx,%ecx
40adac:	e8 92 26 01 00       	call   0x41d443
40adb1:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40adb5:	8b c3                	mov    %ebx,%eax
40adb7:	e8 57 4c 03 00       	call   0x43fa13
40adbc:	c2 10 00             	ret    $0x10
40adbf:	6a 04                	push   $0x4
40adc1:	b8 da b3 48 00       	mov    $0x48b3da,%eax
40adc6:	e8 7f 4c 03 00       	call   0x43fa4a
40adcb:	8b f1                	mov    %ecx,%esi
40adcd:	89 75 f0             	mov    %esi,-0x10(%ebp)
40add0:	6a 01                	push   $0x1
40add2:	e8 61 bb 01 00       	call   0x426938
40add7:	59                   	pop    %ecx
40add8:	89 46 0c             	mov    %eax,0xc(%esi)
40addb:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40addf:	8b ce                	mov    %esi,%ecx
40ade1:	e8 55 be 00 00       	call   0x416c3b
40ade6:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40adea:	8b c6                	mov    %esi,%eax
40adec:	e8 22 4c 03 00       	call   0x43fa13