40e869:	50                   	push   %eax
40e86a:	e8 b6 5b 00 00       	call   0x414425
40e86f:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e872:	59                   	pop    %ecx
40e873:	59                   	pop    %ecx
40e874:	8b 40 08             	mov    0x8(%eax),%eax
40e877:	c9                   	leave
40e878:	c3                   	ret
40e879:	8b ff                	mov    %edi,%edi
40e87b:	55                   	push   %ebp
40e87c:	8b ec                	mov    %esp,%ebp
40e87e:	51                   	push   %ecx
40e87f:	e8 4f 59 00 00       	call   0x4141d3
40e884:	8b 48 4c             	mov    0x4c(%eax),%ecx
40e887:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40e88a:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40e88d:	51                   	push   %ecx
40e88e:	50                   	push   %eax
40e88f:	e8 91 5b 00 00       	call   0x414425
40e894:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e897:	59                   	pop    %ecx
40e898:	59                   	pop    %ecx
40e899:	05 a0 00 00 00       	add    $0xa0,%eax
40e89e:	c9                   	leave
40e89f:	c3                   	ret
40e8a0:	8b ff                	mov    %edi,%edi
40e8a2:	55                   	push   %ebp
40e8a3:	8b ec                	mov    %esp,%ebp
40e8a5:	51                   	push   %ecx
40e8a6:	e8 28 59 00 00       	call   0x4141d3
40e8ab:	8b 48 4c             	mov    0x4c(%eax),%ecx
40e8ae:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40e8b1:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40e8b4:	51                   	push   %ecx
40e8b5:	50                   	push   %eax
40e8b6:	e8 6a 5b 00 00       	call   0x414425
40e8bb:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e8be:	59                   	pop    %ecx
40e8bf:	59                   	pop    %ecx
40e8c0:	8b 40 04             	mov    0x4(%eax),%eax
40e8c3:	c9                   	leave
40e8c4:	c3                   	ret
40e8c5:	8b ff                	mov    %edi,%edi
40e8c7:	55                   	push   %ebp
40e8c8:	8b ec                	mov    %esp,%ebp
40e8ca:	83 ec 58             	sub    $0x58,%esp
40e8cd:	a1 14 30 43 00       	mov    0x433014,%eax
40e8d2:	33 c5                	xor    %ebp,%eax
40e8d4:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e8d7:	53                   	push   %ebx
40e8d8:	56                   	push   %esi
40e8d9:	8b 75 08             	mov    0x8(%ebp),%esi
40e8dc:	33 db                	xor    %ebx,%ebx
40e8de:	57                   	push   %edi
40e8df:	89 75 cc             	mov    %esi,-0x34(%ebp)
40e8e2:	8b fb                	mov    %ebx,%edi
40e8e4:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40e8e7:	8b 8e a8 00 00 00    	mov    0xa8(%esi),%ecx
40e8ed:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40e8f0:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40e8f3:	89 75 a8             	mov    %esi,-0x58(%ebp)
40e8f6:	89 5d ac             	mov    %ebx,-0x54(%ebp)
40e8f9:	85 c9                	test   %ecx,%ecx
40e8fb:	0f 84 d7 03 00 00    	je     0x40ecd8
40e901:	8d 46 08             	lea    0x8(%esi),%eax
40e904:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40e907:	39 18                	cmp    %ebx,(%eax)
40e909:	75 1c                	jne    0x40e927
40e90b:	50                   	push   %eax
40e90c:	68 04 10 00 00       	push   $0x1004
40e911:	51                   	push   %ecx
40e912:	8d 45 a8             	lea    -0x58(%ebp),%eax
40e915:	53                   	push   %ebx
40e916:	50                   	push   %eax
40e917:	e8 5b 9c 00 00       	call   0x418577
40e91c:	83 c4 14             	add    $0x14,%esp
40e91f:	85 c0                	test   %eax,%eax
40e921:	0f 85 80 03 00 00    	jne    0x40eca7
40e927:	6a 04                	push   $0x4
40e929:	6a 01                	push   $0x1
40e92b:	e8 7e 47 00 00       	call   0x4130ae
40e930:	53                   	push   %ebx
40e931:	89 45 d0             	mov    %eax,-0x30(%ebp)
40e934:	e8 d2 47 00 00       	call   0x41310b
40e939:	6a 02                	push   $0x2
40e93b:	bf 80 01 00 00       	mov    $0x180,%edi
40e940:	57                   	push   %edi
40e941:	e8 68 47 00 00       	call   0x4130ae
40e946:	53                   	push   %ebx
40e947:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40e94a:	e8 bc 47 00 00       	call   0x41310b
40e94f:	6a 01                	push   $0x1
40e951:	57                   	push   %edi
40e952:	e8 57 47 00 00       	call   0x4130ae
40e957:	8b f8                	mov    %eax,%edi
40e959:	53                   	push   %ebx
40e95a:	89 7d d8             	mov    %edi,-0x28(%ebp)
40e95d:	e8 a9 47 00 00       	call   0x41310b
40e962:	6a 01                	push   $0x1
40e964:	68 80 01 00 00       	push   $0x180
40e969:	e8 40 47 00 00       	call   0x4130ae
40e96e:	53                   	push   %ebx
40e96f:	89 45 e0             	mov    %eax,-0x20(%ebp)
40e972:	e8 94 47 00 00       	call   0x41310b
40e977:	6a 01                	push   $0x1
40e979:	68 01 01 00 00       	push   $0x101
40e97e:	e8 2b 47 00 00       	call   0x4130ae
40e983:	53                   	push   %ebx
40e984:	89 45 dc             	mov    %eax,-0x24(%ebp)
40e987:	e8 7f 47 00 00       	call   0x41310b
40e98c:	83 c4 3c             	add    $0x3c,%esp
40e98f:	39 5d d0             	cmp    %ebx,-0x30(%ebp)
40e992:	0f 84 0f 03 00 00    	je     0x40eca7
40e998:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
40e99b:	0f 84 06 03 00 00    	je     0x40eca7
40e9a1:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40e9a4:	85 c9                	test   %ecx,%ecx
40e9a6:	0f 84 fb 02 00 00    	je     0x40eca7
40e9ac:	85 ff                	test   %edi,%edi
40e9ae:	0f 84 f3 02 00 00    	je     0x40eca7
40e9b4:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
40e9b7:	0f 84 ea 02 00 00    	je     0x40eca7
40e9bd:	8b c3                	mov    %ebx,%eax
40e9bf:	88 04 08             	mov    %al,(%eax,%ecx,1)
40e9c2:	40                   	inc    %eax
40e9c3:	3d 00 01 00 00       	cmp    $0x100,%eax
40e9c8:	7c f5                	jl     0x40e9bf
40e9ca:	8d 45 e8             	lea    -0x18(%ebp),%eax
40e9cd:	50                   	push   %eax
40e9ce:	ff 76 08             	push   0x8(%esi)
40e9d1:	ff 15 5c 40 42 00    	call   *0x42405c
40e9d7:	85 c0                	test   %eax,%eax
40e9d9:	0f 84 c8 02 00 00    	je     0x40eca7
40e9df:	8b 45 e8             	mov    -0x18(%ebp),%eax
40e9e2:	83 f8 05             	cmp    $0x5,%eax
40e9e5:	0f 87 bc 02 00 00    	ja     0x40eca7
40e9eb:	0f b7 c0             	movzwl %ax,%eax
40e9ee:	89 45 c8             	mov    %eax,-0x38(%ebp)
40e9f1:	83 f8 01             	cmp    $0x1,%eax
40e9f4:	76 54                	jbe    0x40ea4a
40e9f6:	81 7e 08 e9 fd 00 00 	cmpl   $0xfde9,0x8(%esi)
40e9fd:	75 18                	jne    0x40ea17
40e9ff:	8b 45 dc             	mov    -0x24(%ebp),%eax
40ea02:	68 80 00 00 00       	push   $0x80
40ea07:	83 e8 80             	sub    $0xffffff80,%eax
40ea0a:	6a 20                	push   $0x20
40ea0c:	50                   	push   %eax
40ea0d:	e8 de a4 ff ff       	call   0x408ef0
40ea12:	83 c4 0c             	add    $0xc,%esp
40ea15:	eb 33                	jmp    0x40ea4a
40ea17:	8d 55 ee             	lea    -0x12(%ebp),%edx
40ea1a:	38 5d ee             	cmp    %bl,-0x12(%ebp)
40ea1d:	74 2b                	je     0x40ea4a
40ea1f:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40ea22:	8a 42 01             	mov    0x1(%edx),%al
40ea25:	84 c0                	test   %al,%al
40ea27:	74 1e                	je     0x40ea47
40ea29:	0f b6 32             	movzbl (%edx),%esi
40ea2c:	0f b6 c0             	movzbl %al,%eax
40ea2f:	3b f0                	cmp    %eax,%esi
40ea31:	77 0d                	ja     0x40ea40
40ea33:	c6 04 0e 20          	movb   $0x20,(%esi,%ecx,1)
40ea37:	46                   	inc    %esi
40ea38:	0f b6 42 01          	movzbl 0x1(%edx),%eax
40ea3c:	3b f0                	cmp    %eax,%esi
40ea3e:	7e f3                	jle    0x40ea33
40ea40:	83 c2 02             	add    $0x2,%edx
40ea43:	38 1a                	cmp    %bl,(%edx)
40ea45:	75 db                	jne    0x40ea22
40ea47:	8b 75 cc             	mov    -0x34(%ebp),%esi
40ea4a:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40ea4d:	8d 87 81 00 00 00    	lea    0x81(%edi),%eax
40ea53:	53                   	push   %ebx
40ea54:	ff 76 08             	push   0x8(%esi)
40ea57:	ba ff 00 00 00       	mov    $0xff,%edx
40ea5c:	41                   	inc    %ecx
40ea5d:	52                   	push   %edx
40ea5e:	50                   	push   %eax
40ea5f:	52                   	push   %edx
40ea60:	51                   	push   %ecx
40ea61:	68 00 01 00 00       	push   $0x100
40ea66:	ff b6 a8 00 00 00    	push   0xa8(%esi)
40ea6c:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40ea6f:	53                   	push   %ebx
40ea70:	e8 9f 9f 00 00       	call   0x418a14
40ea75:	83 c4 24             	add    $0x24,%esp
40ea78:	85 c0                	test   %eax,%eax
40ea7a:	0f 84 27 02 00 00    	je     0x40eca7
40ea80:	8b 45 e0             	mov    -0x20(%ebp),%eax
40ea83:	b9 ff 00 00 00       	mov    $0xff,%ecx
40ea88:	53                   	push   %ebx
40ea89:	ff 76 08             	push   0x8(%esi)
40ea8c:	05 81 00 00 00       	add    $0x81,%eax
40ea91:	51                   	push   %ecx
40ea92:	50                   	push   %eax
40ea93:	51                   	push   %ecx
40ea94:	ff 75 d4             	push   -0x2c(%ebp)
40ea97:	68 00 02 00 00       	push   $0x200
40ea9c:	ff b6 a8 00 00 00    	push   0xa8(%esi)
40eaa2:	53                   	push   %ebx
40eaa3:	e8 6c 9f 00 00       	call   0x418a14
40eaa8:	83 c4 24             	add    $0x24,%esp
40eaab:	85 c0                	test   %eax,%eax
40eaad:	0f 84 f4 01 00 00    	je     0x40eca7
40eab3:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40eab6:	53                   	push   %ebx
40eab7:	ff 76 08             	push   0x8(%esi)
40eaba:	05 00 01 00 00       	add    $0x100,%eax
40eabf:	50                   	push   %eax
40eac0:	68 00 01 00 00       	push   $0x100
40eac5:	ff 75 dc             	push   -0x24(%ebp)
40eac8:	89 45 bc             	mov    %eax,-0x44(%ebp)
40eacb:	6a 01                	push   $0x1
40eacd:	53                   	push   %ebx
40eace:	e8 54 9c 00 00       	call   0x418727
40ead3:	83 c4 1c             	add    $0x1c,%esp
40ead6:	85 c0                	test   %eax,%eax
40ead8:	0f 84 c9 01 00 00    	je     0x40eca7
40eade:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40eae1:	33 d2                	xor    %edx,%edx
40eae3:	83 7d c8 01          	cmpl   $0x1,-0x38(%ebp)
40eae7:	8d 88 fe 00 00 00    	lea    0xfe(%eax),%ecx
40eaed:	66 89 11             	mov    %dx,(%ecx)
40eaf0:	8b 55 d8             	mov    -0x28(%ebp),%edx
40eaf3:	89 4d b8             	mov    %ecx,-0x48(%ebp)
40eaf6:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40eaf9:	8d ba 80 00 00 00    	lea    0x80(%edx),%edi
40eaff:	88 5a 7f             	mov    %bl,0x7f(%edx)
40eb02:	89 7d b4             	mov    %edi,-0x4c(%ebp)
40eb05:	88 59 7f             	mov    %bl,0x7f(%ecx)
40eb08:	88 1f                	mov    %bl,(%edi)
40eb0a:	8d b9 80 00 00 00    	lea    0x80(%ecx),%edi
40eb10:	89 7d b0             	mov    %edi,-0x50(%ebp)
40eb13:	88 1f                	mov    %bl,(%edi)
40eb15:	0f 86 ca 00 00 00    	jbe    0x40ebe5
40eb1b:	81 7e 08 e9 fd 00 00 	cmpl   $0xfde9,0x8(%esi)
40eb22:	75 57                	jne    0x40eb7b
40eb24:	05 00 02 00 00       	add    $0x200,%eax
40eb29:	8b f9                	mov    %ecx,%edi
40eb2b:	89 45 d8             	mov    %eax,-0x28(%ebp)
40eb2e:	8d 8a 00 01 00 00    	lea    0x100(%edx),%ecx
40eb34:	6a 80                	push   $0xffffff80
40eb36:	be be fe ff ff       	mov    $0xfffffebe,%esi
40eb3b:	2b fa                	sub    %edx,%edi
40eb3d:	58                   	pop    %eax
40eb3e:	2b f2                	sub    %edx,%esi
40eb40:	2b c2                	sub    %edx,%eax
40eb42:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40eb45:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
40eb48:	6a 32                	push   $0x32
40eb4a:	5b                   	pop    %ebx
40eb4b:	3b d8                	cmp    %eax,%ebx
40eb4d:	8b 5d d8             	mov    -0x28(%ebp),%ebx
40eb50:	1b c0                	sbb    %eax,%eax
40eb52:	83 45 d8 02          	addl   $0x2,-0x28(%ebp)
40eb56:	25 00 80 ff ff       	and    $0xffff8000,%eax
40eb5b:	05 00 80 00 00       	add    $0x8000,%eax
40eb60:	66 89 03             	mov    %ax,(%ebx)
40eb63:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
40eb66:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
40eb69:	88 01                	mov    %al,(%ecx)
40eb6b:	88 04 0f             	mov    %al,(%edi,%ecx,1)
40eb6e:	41                   	inc    %ecx
40eb6f:	8d 04 0b             	lea    (%ebx,%ecx,1),%eax
40eb72:	3d ff 00 00 00       	cmp    $0xff,%eax
40eb77:	7e cc                	jle    0x40eb45
40eb79:	eb 68                	jmp    0x40ebe3
40eb7b:	8d 7d ee             	lea    -0x12(%ebp),%edi
40eb7e:	38 5d ee             	cmp    %bl,-0x12(%ebp)
40eb81:	74 62                	je     0x40ebe5
40eb83:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40eb86:	8a 47 01             	mov    0x1(%edi),%al
40eb89:	84 c0                	test   %al,%al
40eb8b:	74 56                	je     0x40ebe3
40eb8d:	0f b6 37             	movzbl (%edi),%esi
40eb90:	0f b6 c0             	movzbl %al,%eax
40eb93:	89 75 c4             	mov    %esi,-0x3c(%ebp)
40eb96:	3b f0                	cmp    %eax,%esi
40eb98:	77 41                	ja     0x40ebdb
40eb9a:	81 eb 00 ff ff ff    	sub    $0xffffff00,%ebx
40eba0:	89 55 d4             	mov    %edx,-0x2c(%ebp)
40eba3:	8d 81 80 00 00 00    	lea    0x80(%ecx),%eax
40eba9:	03 c6                	add    %esi,%eax
40ebab:	2b d1                	sub    %ecx,%edx
40ebad:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
40ebb0:	8d 34 73             	lea    (%ebx,%esi,2),%esi
40ebb3:	89 45 c0             	mov    %eax,-0x40(%ebp)
40ebb6:	8b d8                	mov    %eax,%ebx
40ebb8:	b8 00 80 00 00       	mov    $0x8000,%eax
40ebbd:	66 89 06             	mov    %ax,(%esi)
40ebc0:	8d 76 02             	lea    0x2(%esi),%esi
40ebc3:	88 0c 1a             	mov    %cl,(%edx,%ebx,1)
40ebc6:	88 0b                	mov    %cl,(%ebx)
40ebc8:	41                   	inc    %ecx
40ebc9:	0f b6 47 01          	movzbl 0x1(%edi),%eax
40ebcd:	43                   	inc    %ebx
40ebce:	3b c8                	cmp    %eax,%ecx
40ebd0:	7e e6                	jle    0x40ebb8
40ebd2:	8b 55 d8             	mov    -0x28(%ebp),%edx
40ebd5:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40ebd8:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40ebdb:	83 c7 02             	add    $0x2,%edi
40ebde:	80 3f 00             	cmpb   $0x0,(%edi)
40ebe1:	75 a3                	jne    0x40eb86
40ebe3:	33 db                	xor    %ebx,%ebx
40ebe5:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40ebe8:	8b f8                	mov    %eax,%edi
40ebea:	6a 3f                	push   $0x3f
40ebec:	59                   	pop    %ecx
40ebed:	6a 1f                	push   $0x1f
40ebef:	8d b0 00 02 00 00    	lea    0x200(%eax),%esi
40ebf5:	8b 45 e0             	mov    -0x20(%ebp),%eax
40ebf8:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40ebfa:	59                   	pop    %ecx
40ebfb:	6a 1f                	push   $0x1f
40ebfd:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
40ebff:	8d b2 00 01 00 00    	lea    0x100(%edx),%esi
40ec05:	8b fa                	mov    %edx,%edi
40ec07:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40ec09:	59                   	pop    %ecx
40ec0a:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
40ec0c:	a4                   	movsb  %ds:(%esi),%es:(%edi)
40ec0d:	8d b0 00 01 00 00    	lea    0x100(%eax),%esi
40ec13:	8b f8                	mov    %eax,%edi
40ec15:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40ec17:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
40ec19:	a4                   	movsb  %ds:(%esi),%es:(%edi)
40ec1a:	8b 75 cc             	mov    -0x34(%ebp),%esi
40ec1d:	8b 8e 8c 00 00 00    	mov    0x8c(%esi),%ecx
40ec23:	85 c9                	test   %ecx,%ecx
40ec25:	74 49                	je     0x40ec70
40ec27:	83 c8 ff             	or     $0xffffffff,%eax
40ec2a:	f0 0f c1 01          	lock xadd %eax,(%ecx)
40ec2e:	75 40                	jne    0x40ec70
40ec30:	8b 86 90 00 00 00    	mov    0x90(%esi),%eax
40ec36:	2d fe 00 00 00       	sub    $0xfe,%eax
40ec3b:	50                   	push   %eax
40ec3c:	e8 ca 44 00 00       	call   0x41310b
40ec41:	8b 86 94 00 00 00    	mov    0x94(%esi),%eax
40ec47:	bf 80 00 00 00       	mov    $0x80,%edi
40ec4c:	2b c7                	sub    %edi,%eax
40ec4e:	50                   	push   %eax
40ec4f:	e8 b7 44 00 00       	call   0x41310b
40ec54:	8b 86 98 00 00 00    	mov    0x98(%esi),%eax
40ec5a:	2b c7                	sub    %edi,%eax
40ec5c:	50                   	push   %eax
40ec5d:	e8 a9 44 00 00       	call   0x41310b
40ec62:	ff b6 8c 00 00 00    	push   0x8c(%esi)
40ec68:	e8 9e 44 00 00       	call   0x41310b
40ec6d:	83 c4 10             	add    $0x10,%esp