45fa01:	c2 10 00             	ret    $0x10
45fa04:	55                   	push   %ebp
45fa05:	8b ec                	mov    %esp,%ebp
45fa07:	83 ec 18             	sub    $0x18,%esp
45fa0a:	53                   	push   %ebx
45fa0b:	56                   	push   %esi
45fa0c:	57                   	push   %edi
45fa0d:	8d 4d e8             	lea    -0x18(%ebp),%ecx
45fa10:	e8 b2 7d fa ff       	call   0x4077c7
45fa15:	8b 75 0c             	mov    0xc(%ebp),%esi
45fa18:	8b 7d 08             	mov    0x8(%ebp),%edi
45fa1b:	8b 06                	mov    (%esi),%eax
45fa1d:	89 45 f8             	mov    %eax,-0x8(%ebp)
45fa20:	8d 58 01             	lea    0x1(%eax),%ebx
45fa23:	89 1e                	mov    %ebx,(%esi)
45fa25:	3b 5f 04             	cmp    0x4(%edi),%ebx
45fa28:	0f 8d a2 00 00 00    	jge    0x45fad0
45fa2e:	33 c0                	xor    %eax,%eax
45fa30:	89 45 0c             	mov    %eax,0xc(%ebp)
45fa33:	38 45 10             	cmp    %al,0x10(%ebp)
45fa36:	74 1b                	je     0x45fa53
45fa38:	53                   	push   %ebx
45fa39:	8b cf                	mov    %edi,%ecx
45fa3b:	e8 e0 80 fa ff       	call   0x407b20
45fa40:	66 83 38 7b          	cmpw   $0x7b,(%eax)
45fa44:	75 0b                	jne    0x45fa51
45fa46:	8d 43 01             	lea    0x1(%ebx),%eax
45fa49:	c6 45 13 01          	movb   $0x1,0x13(%ebp)
45fa4d:	89 06                	mov    %eax,(%esi)
45fa4f:	eb 05                	jmp    0x45fa56
45fa51:	33 c0                	xor    %eax,%eax
45fa53:	88 45 13             	mov    %al,0x13(%ebp)
45fa56:	8d 4d e8             	lea    -0x18(%ebp),%ecx
45fa59:	e8 8e 84 fa ff       	call   0x407eec
45fa5e:	eb 36                	jmp    0x45fa96
45fa60:	ff 36                	push   (%esi)
45fa62:	8b cf                	mov    %edi,%ecx
45fa64:	e8 b7 80 fa ff       	call   0x407b20
45fa69:	0f b7 00             	movzwl (%eax),%eax
45fa6c:	50                   	push   %eax
45fa6d:	e8 2d 44 fc ff       	call   0x423e9f
45fa72:	59                   	pop    %ecx
45fa73:	85 c0                	test   %eax,%eax
45fa75:	74 26                	je     0x45fa9d
45fa77:	8b 0e                	mov    (%esi),%ecx
45fa79:	51                   	push   %ecx
45fa7a:	c6 45 0c 01          	movb   $0x1,0xc(%ebp)
45fa7e:	8d 41 01             	lea    0x1(%ecx),%eax
45fa81:	8b cf                	mov    %edi,%ecx
45fa83:	89 06                	mov    %eax,(%esi)
45fa85:	e8 96 80 fa ff       	call   0x407b20
45fa8a:	8d 4d e8             	lea    -0x18(%ebp),%ecx
45fa8d:	0f b7 00             	movzwl (%eax),%eax
45fa90:	50                   	push   %eax
45fa91:	e8 ee 7f fa ff       	call   0x407a84
45fa96:	8b 06                	mov    (%esi),%eax
45fa98:	3b 47 04             	cmp    0x4(%edi),%eax
45fa9b:	7c c3                	jl     0x45fa60
45fa9d:	ff 75 e8             	push   -0x18(%ebp)
45faa0:	e8 25 3d fc ff       	call   0x4237ca
45faa5:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
45faa9:	8b d8                	mov    %eax,%ebx
45faab:	59                   	pop    %ecx
45faac:	74 1f                	je     0x45facd
45faae:	80 7d 13 00          	cmpb   $0x0,0x13(%ebp)
45fab2:	74 21                	je     0x45fad5
45fab4:	8b 06                	mov    (%esi),%eax
45fab6:	3b 47 04             	cmp    0x4(%edi),%eax
45fab9:	74 12                	je     0x45facd
45fabb:	50                   	push   %eax
45fabc:	8b cf                	mov    %edi,%ecx
45fabe:	e8 5d 80 fa ff       	call   0x407b20
45fac3:	66 83 38 7d          	cmpw   $0x7d,(%eax)
45fac7:	75 04                	jne    0x45facd
45fac9:	ff 06                	incl   (%esi)
45facb:	eb 08                	jmp    0x45fad5
45facd:	8b 45 f8             	mov    -0x8(%ebp),%eax
45fad0:	83 cb ff             	or     $0xffffffff,%ebx
45fad3:	89 06                	mov    %eax,(%esi)
45fad5:	8d 4d e8             	lea    -0x18(%ebp),%ecx
45fad8:	e8 87 5f fa ff       	call   0x405a64
45fadd:	5f                   	pop    %edi
45fade:	5e                   	pop    %esi
45fadf:	8b c3                	mov    %ebx,%eax
45fae1:	5b                   	pop    %ebx
45fae2:	8b e5                	mov    %ebp,%esp
45fae4:	5d                   	pop    %ebp
45fae5:	c2 0c 00             	ret    $0xc
45fae8:	55                   	push   %ebp
45fae9:	8b ec                	mov    %esp,%ebp
45faeb:	56                   	push   %esi
45faec:	8b f1                	mov    %ecx,%esi
45faee:	e8 8e 66 fb ff       	call   0x416181
45faf3:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
45faf7:	74 07                	je     0x45fb00
45faf9:	56                   	push   %esi
45fafa:	e8 6d 15 fc ff       	call   0x42106c
45faff:	59                   	pop    %ecx
45fb00:	8b c6                	mov    %esi,%eax
45fb02:	5e                   	pop    %esi
45fb03:	5d                   	pop    %ebp
45fb04:	c2 04 00             	ret    $0x4
45fb07:	55                   	push   %ebp
45fb08:	8b ec                	mov    %esp,%ebp
45fb0a:	57                   	push   %edi
45fb0b:	8b f9                	mov    %ecx,%edi
45fb0d:	83 7f 10 00          	cmpl   $0x0,0x10(%edi)
45fb11:	74 56                	je     0x45fb69
45fb13:	8b 47 0c             	mov    0xc(%edi),%eax
45fb16:	56                   	push   %esi
45fb17:	ff 30                	push   (%eax)
45fb19:	e8 1e 33 fc ff       	call   0x422e3c
45fb1e:	ff 75 08             	push   0x8(%ebp)
45fb21:	8d 70 01             	lea    0x1(%eax),%esi
45fb24:	e8 13 33 fc ff       	call   0x422e3c
45fb29:	33 c9                	xor    %ecx,%ecx
45fb2b:	6a 02                	push   $0x2
45fb2d:	5a                   	pop    %edx
45fb2e:	8d 04 06             	lea    (%esi,%eax,1),%eax
45fb31:	f7 e2                	mul    %edx
45fb33:	0f 90 c1             	seto   %cl
45fb36:	f7 d9                	neg    %ecx
45fb38:	0b c8                	or     %eax,%ecx
45fb3a:	51                   	push   %ecx
45fb3b:	e8 b6 14 fc ff       	call   0x420ff6
45fb40:	8b 4f 0c             	mov    0xc(%edi),%ecx
45fb43:	8b f0                	mov    %eax,%esi
45fb45:	ff 31                	push   (%ecx)
45fb47:	56                   	push   %esi
45fb48:	e8 af 34 fc ff       	call   0x422ffc
45fb4d:	ff 75 08             	push   0x8(%ebp)
45fb50:	56                   	push   %esi
45fb51:	e8 77 34 fc ff       	call   0x422fcd
45fb56:	8b 47 0c             	mov    0xc(%edi),%eax
45fb59:	ff 30                	push   (%eax)
45fb5b:	e8 0c 15 fc ff       	call   0x42106c
45fb60:	8b 47 0c             	mov    0xc(%edi),%eax
45fb63:	83 c4 20             	add    $0x20,%esp
45fb66:	89 30                	mov    %esi,(%eax)
45fb68:	5e                   	pop    %esi
45fb69:	5f                   	pop    %edi
45fb6a:	5d                   	pop    %ebp
45fb6b:	c2 04 00             	ret    $0x4
45fb6e:	55                   	push   %ebp
45fb6f:	8b ec                	mov    %esp,%ebp
45fb71:	53                   	push   %ebx
45fb72:	56                   	push   %esi
45fb73:	8b 75 08             	mov    0x8(%ebp),%esi
45fb76:	57                   	push   %edi
45fb77:	6a 0b                	push   $0xb
45fb79:	68 7c 26 49 00       	push   $0x49267c
45fb7e:	56                   	push   %esi
45fb7f:	8b f9                	mov    %ecx,%edi
45fb81:	e8 85 3e fc ff       	call   0x423a0b
45fb86:	83 c4 0c             	add    $0xc,%esp
45fb89:	85 c0                	test   %eax,%eax
45fb8b:	75 0d                	jne    0x45fb9a
45fb8d:	c6 07 01             	movb   $0x1,(%edi)
45fb90:	33 c0                	xor    %eax,%eax
45fb92:	40                   	inc    %eax
45fb93:	5f                   	pop    %edi
45fb94:	5e                   	pop    %esi
45fb95:	5b                   	pop    %ebx
45fb96:	5d                   	pop    %ebp
45fb97:	c2 04 00             	ret    $0x4
45fb9a:	6a 0d                	push   $0xd
45fb9c:	68 44 26 49 00       	push   $0x492644
45fba1:	56                   	push   %esi
45fba2:	e8 64 3e fc ff       	call   0x423a0b
45fba7:	83 c4 0c             	add    $0xc,%esp
45fbaa:	85 c0                	test   %eax,%eax
45fbac:	75 06                	jne    0x45fbb4
45fbae:	c6 47 01 01          	movb   $0x1,0x1(%edi)
45fbb2:	eb dc                	jmp    0x45fb90
45fbb4:	6a 16                	push   $0x16
45fbb6:	68 f4 25 49 00       	push   $0x4925f4
45fbbb:	56                   	push   %esi
45fbbc:	e8 4a 3e fc ff       	call   0x423a0b
45fbc1:	83 c4 0c             	add    $0xc,%esp
45fbc4:	85 c0                	test   %eax,%eax
45fbc6:	75 c8                	jne    0x45fb90
45fbc8:	8d 4e 2c             	lea    0x2c(%esi),%ecx
45fbcb:	e8 f6 02 fc ff       	call   0x41fec6
45fbd0:	8b f0                	mov    %eax,%esi
45fbd2:	56                   	push   %esi
45fbd3:	e8 e5 74 fa ff       	call   0x4070bd
45fbd8:	56                   	push   %esi
45fbd9:	e8 2c 75 fa ff       	call   0x40710a
45fbde:	56                   	push   %esi
45fbdf:	e8 58 32 fc ff       	call   0x422e3c
45fbe4:	59                   	pop    %ecx
45fbe5:	6a 22                	push   $0x22
45fbe7:	5b                   	pop    %ebx
45fbe8:	0f b7 4c 46 fe       	movzwl -0x2(%esi,%eax,2),%ecx
45fbed:	66 3b cb             	cmp    %bx,%cx
45fbf0:	74 24                	je     0x45fc16
45fbf2:	6a 27                	push   $0x27
45fbf4:	5a                   	pop    %edx
45fbf5:	66 3b ca             	cmp    %dx,%cx
45fbf8:	74 1c                	je     0x45fc16
45fbfa:	0f b7 06             	movzwl (%esi),%eax
45fbfd:	66 3b c3             	cmp    %bx,%ax
45fc00:	74 10                	je     0x45fc12
45fc02:	66 3b c2             	cmp    %dx,%ax
45fc05:	74 0b                	je     0x45fc12
45fc07:	8b 4f 04             	mov    0x4(%edi),%ecx
45fc0a:	56                   	push   %esi
45fc0b:	8b 01                	mov    (%ecx),%eax
45fc0d:	ff 50 08             	call   *0x8(%eax)
45fc10:	eb 2a                	jmp    0x45fc3c
45fc12:	33 ff                	xor    %edi,%edi
45fc14:	eb 29                	jmp    0x45fc3f
45fc16:	66 39 0e             	cmp    %cx,(%esi)
45fc19:	74 0e                	je     0x45fc29
45fc1b:	56                   	push   %esi
45fc1c:	e8 4b 14 fc ff       	call   0x42106c
45fc21:	59                   	pop    %ecx
45fc22:	33 c0                	xor    %eax,%eax
45fc24:	e9 6a ff ff ff       	jmp    0x45fb93
45fc29:	33 c9                	xor    %ecx,%ecx
45fc2b:	66 89 4c 46 fe       	mov    %cx,-0x2(%esi,%eax,2)
45fc30:	8d 46 02             	lea    0x2(%esi),%eax
45fc33:	8b 4f 04             	mov    0x4(%edi),%ecx
45fc36:	50                   	push   %eax
45fc37:	8b 11                	mov    (%ecx),%edx
45fc39:	ff 52 08             	call   *0x8(%edx)
45fc3c:	33 ff                	xor    %edi,%edi
45fc3e:	47                   	inc    %edi
45fc3f:	56                   	push   %esi
45fc40:	e8 27 14 fc ff       	call   0x42106c
45fc45:	59                   	pop    %ecx
45fc46:	8b c7                	mov    %edi,%eax
45fc48:	e9 46 ff ff ff       	jmp    0x45fb93
45fc4d:	55                   	push   %ebp
45fc4e:	8b ec                	mov    %esp,%ebp
45fc50:	53                   	push   %ebx
45fc51:	8b 5d 0c             	mov    0xc(%ebp),%ebx
45fc54:	56                   	push   %esi
45fc55:	57                   	push   %edi
45fc56:	8b 7d 08             	mov    0x8(%ebp),%edi
45fc59:	8b 0b                	mov    (%ebx),%ecx
45fc5b:	6a 02                	push   $0x2
45fc5d:	5a                   	pop    %edx
45fc5e:	8b 34 39             	mov    (%ecx,%edi,1),%esi
45fc61:	8d 41 04             	lea    0x4(%ecx),%eax
45fc64:	89 03                	mov    %eax,(%ebx)
45fc66:	33 c9                	xor    %ecx,%ecx
45fc68:	89 75 08             	mov    %esi,0x8(%ebp)
45fc6b:	8d 46 01             	lea    0x1(%esi),%eax
45fc6e:	f7 e2                	mul    %edx
45fc70:	0f 90 c1             	seto   %cl
45fc73:	f7 d9                	neg    %ecx
45fc75:	0b c8                	or     %eax,%ecx
45fc77:	51                   	push   %ecx
45fc78:	e8 79 13 fc ff       	call   0x420ff6
45fc7d:	8b 0b                	mov    (%ebx),%ecx
45fc7f:	03 f6                	add    %esi,%esi
45fc81:	03 cf                	add    %edi,%ecx
45fc83:	8b f8                	mov    %eax,%edi
45fc85:	56                   	push   %esi
45fc86:	51                   	push   %ecx
45fc87:	57                   	push   %edi
45fc88:	e8 f3 13 fc ff       	call   0x421080
45fc8d:	01 33                	add    %esi,(%ebx)
45fc8f:	33 c0                	xor    %eax,%eax
45fc91:	8b 4d 08             	mov    0x8(%ebp),%ecx
45fc94:	83 c4 10             	add    $0x10,%esp
45fc97:	66 89 04 3e          	mov    %ax,(%esi,%edi,1)
45fc9b:	85 c9                	test   %ecx,%ecx
45fc9d:	7e 09                	jle    0x45fca8
45fc9f:	66 31 0c 47          	xor    %cx,(%edi,%eax,2)
45fca3:	40                   	inc    %eax
45fca4:	3b c1                	cmp    %ecx,%eax
45fca6:	7c f7                	jl     0x45fc9f
45fca8:	8b c7                	mov    %edi,%eax
45fcaa:	5f                   	pop    %edi
45fcab:	5e                   	pop    %esi
45fcac:	5b                   	pop    %ebx
45fcad:	5d                   	pop    %ebp
45fcae:	c2 08 00             	ret    $0x8
45fcb1:	55                   	push   %ebp
45fcb2:	8b ec                	mov    %esp,%ebp
45fcb4:	b8 24 20 00 00       	mov    $0x2024,%eax
45fcb9:	e8 d2 1e fd ff       	call   0x431b90
45fcbe:	56                   	push   %esi
45fcbf:	68 ff 0f 00 00       	push   $0xfff
45fcc4:	8b f1                	mov    %ecx,%esi
45fcc6:	8d 85 e0 df ff ff    	lea    -0x2020(%ebp),%eax
45fccc:	50                   	push   %eax
45fccd:	ff 76 60             	push   0x60(%esi)
45fcd0:	6a 00                	push   $0x0
45fcd2:	ff 15 b8 f1 48 00    	call   *0x48f1b8
45fcd8:	50                   	push   %eax
45fcd9:	ff 15 04 f6 48 00    	call   *0x48f604
45fcdf:	8d 85 e0 df ff ff    	lea    -0x2020(%ebp),%eax
45fce5:	50                   	push   %eax
45fce6:	8d 4d e0             	lea    -0x20(%ebp),%ecx
45fce9:	e8 53 82 fa ff       	call   0x407f41
45fcee:	80 7e 02 00          	cmpb   $0x0,0x2(%esi)
45fcf2:	8b 45 08             	mov    0x8(%ebp),%eax
45fcf5:	74 22                	je     0x45fd19
45fcf7:	68 10 f9 48 00       	push   $0x48f910
45fcfc:	ff 75 14             	push   0x14(%ebp)
45fcff:	ff 75 10             	push   0x10(%ebp)
45fd02:	ff 75 0c             	push   0xc(%ebp)
45fd05:	ff 30                	push   (%eax)
45fd07:	68 20 9e 4b 00       	push   $0x4b9e20
45fd0c:	e8 b9 41 fc ff       	call   0x423eca
45fd11:	83 c4 18             	add    $0x18,%esp
45fd14:	e9 92 00 00 00       	jmp    0x45fdab
45fd19:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
45fd1d:	75 19                	jne    0x45fd38
45fd1f:	ff 75 0c             	push   0xc(%ebp)
45fd22:	8d 85 e0 df ff ff    	lea    -0x2020(%ebp),%eax
45fd28:	68 58 9e 4b 00       	push   $0x4b9e58
45fd2d:	50                   	push   %eax
45fd2e:	e8 a5 3b fc ff       	call   0x4238d8
45fd33:	83 c4 0c             	add    $0xc,%esp
45fd36:	eb 19                	jmp    0x45fd51
45fd38:	ff 30                	push   (%eax)
45fd3a:	8d 85 e0 df ff ff    	lea    -0x2020(%ebp),%eax
45fd40:	ff 75 0c             	push   0xc(%ebp)
45fd43:	68 70 9e 4b 00       	push   $0x4b9e70
45fd48:	50                   	push   %eax
45fd49:	e8 8a 3b fc ff       	call   0x4238d8
45fd4e:	83 c4 10             	add    $0x10,%esp
45fd51:	8d 85 e0 df ff ff    	lea    -0x2020(%ebp),%eax
45fd57:	50                   	push   %eax
45fd58:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45fd5b:	e8 e1 81 fa ff       	call   0x407f41
45fd60:	ff 75 14             	push   0x14(%ebp)
45fd63:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45fd66:	e8 a0 80 fa ff       	call   0x407e0b
45fd6b:	68 a0 9e 4b 00       	push   $0x4b9ea0
45fd70:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45fd73:	e8 93 80 fa ff       	call   0x407e0b
45fd78:	ff 75 10             	push   0x10(%ebp)
45fd7b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45fd7e:	e8 88 80 fa ff       	call   0x407e0b
45fd83:	68 b4 9e 4b 00       	push   $0x4b9eb4
45fd88:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45fd8b:	e8 7b 80 fa ff       	call   0x407e0b
45fd90:	68 10 10 01 00       	push   $0x11010
45fd95:	ff 75 e0             	push   -0x20(%ebp)
45fd98:	ff 75 f0             	push   -0x10(%ebp)
45fd9b:	6a 00                	push   $0x0
45fd9d:	ff 15 b8 f6 48 00    	call   *0x48f6b8
45fda3:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45fda6:	e8 b9 5c fa ff       	call   0x405a64
45fdab:	8d 4d e0             	lea    -0x20(%ebp),%ecx