4127f2:	53                   	push   %ebx
4127f3:	ff 15 2c b0 41 00    	call   *0x41b02c
4127f9:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4127fc:	46                   	inc    %esi
4127fd:	8b 00                	mov    (%eax),%eax
4127ff:	89 01                	mov    %eax,(%ecx)
412801:	85 ff                	test   %edi,%edi
412803:	74 08                	je     0x41280d
412805:	57                   	push   %edi
412806:	ff 15 cc b2 41 00    	call   *0x41b2cc
41280c:	59                   	pop    %ecx
41280d:	8b 45 f0             	mov    -0x10(%ebp),%eax
412810:	85 c0                	test   %eax,%eax
412812:	74 0c                	je     0x412820
412814:	83 f8 ff             	cmp    $0xffffffff,%eax
412817:	74 07                	je     0x412820
412819:	50                   	push   %eax
41281a:	ff 15 54 b1 41 00    	call   *0x41b154
412820:	8b c6                	mov    %esi,%eax
412822:	e8 f5 13 00 00       	call   0x413c1c
412827:	c3                   	ret
412828:	8b ff                	mov    %edi,%edi
41282a:	55                   	push   %ebp
41282b:	8b ec                	mov    %esp,%ebp
41282d:	51                   	push   %ecx
41282e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
412832:	8d 4d fc             	lea    -0x4(%ebp),%ecx
412835:	e8 13 ff ff ff       	call   0x41274d
41283a:	85 c0                	test   %eax,%eax
41283c:	75 02                	jne    0x412840
41283e:	c9                   	leave
41283f:	c3                   	ret
412840:	81 7d fc 00 20 00 00 	cmpl   $0x2000,-0x4(%ebp)
412847:	1b c0                	sbb    %eax,%eax
412849:	f7 d8                	neg    %eax
41284b:	c9                   	leave
41284c:	c3                   	ret
41284d:	8b ff                	mov    %edi,%edi
41284f:	55                   	push   %ebp
412850:	8b ec                	mov    %esp,%ebp
412852:	83 e4 f8             	and    $0xfffffff8,%esp
412855:	81 ec 38 01 00 00    	sub    $0x138,%esp
41285b:	a1 18 51 41 00       	mov    0x415118,%eax
412860:	33 c4                	xor    %esp,%eax
412862:	89 84 24 34 01 00 00 	mov    %eax,0x134(%esp)
412869:	56                   	push   %esi
41286a:	57                   	push   %edi
41286b:	8d 44 24 18          	lea    0x18(%esp),%eax
41286f:	c7 44 24 18 1c 01 00 	movl   $0x11c,0x18(%esp)
412876:	00
412877:	50                   	push   %eax
412878:	ff 15 c8 b0 41 00    	call   *0x41b0c8
41287e:	85 c0                	test   %eax,%eax
412880:	0f 95 84 24 34 01 00 	setne  0x134(%esp)
412887:	00
412888:	85 c0                	test   %eax,%eax
41288a:	74 72                	je     0x4128fe
41288c:	83 7c 24 1c 06       	cmpl   $0x6,0x1c(%esp)
412891:	72 6b                	jb     0x4128fe
412893:	8d 44 24 0c          	lea    0xc(%esp),%eax
412897:	33 ff                	xor    %edi,%edi
412899:	50                   	push   %eax
41289a:	68 19 00 02 00       	push   $0x20019
41289f:	57                   	push   %edi
4128a0:	68 f8 41 40 00       	push   $0x4041f8
4128a5:	33 f6                	xor    %esi,%esi
4128a7:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
4128ab:	68 02 00 00 80       	push   $0x80000002
4128b0:	46                   	inc    %esi
4128b1:	ff 15 28 b0 41 00    	call   *0x41b028
4128b7:	85 c0                	test   %eax,%eax
4128b9:	75 3f                	jne    0x4128fa
4128bb:	8d 44 24 14          	lea    0x14(%esp),%eax
4128bf:	89 7c 24 10          	mov    %edi,0x10(%esp)
4128c3:	50                   	push   %eax
4128c4:	8d 44 24 14          	lea    0x14(%esp),%eax
4128c8:	c7 44 24 18 04 00 00 	movl   $0x4,0x18(%esp)
4128cf:	00
4128d0:	50                   	push   %eax
4128d1:	57                   	push   %edi
4128d2:	57                   	push   %edi
4128d3:	68 6c 42 40 00       	push   $0x40426c
4128d8:	ff 74 24 20          	push   0x20(%esp)
4128dc:	ff 15 24 b0 41 00    	call   *0x41b024
4128e2:	85 c0                	test   %eax,%eax
4128e4:	75 0a                	jne    0x4128f0
4128e6:	8b 44 24 10          	mov    0x10(%esp),%eax
4128ea:	f7 d8                	neg    %eax
4128ec:	1b c0                	sbb    %eax,%eax
4128ee:	23 f0                	and    %eax,%esi
4128f0:	ff 74 24 0c          	push   0xc(%esp)
4128f4:	ff 15 20 b0 41 00    	call   *0x41b020
4128fa:	8b c6                	mov    %esi,%eax
4128fc:	eb 02                	jmp    0x412900
4128fe:	33 c0                	xor    %eax,%eax
412900:	8b 8c 24 3c 01 00 00 	mov    0x13c(%esp),%ecx
412907:	5f                   	pop    %edi
412908:	5e                   	pop    %esi
412909:	33 cc                	xor    %esp,%ecx
41290b:	e8 d0 0f 00 00       	call   0x4138e0
412910:	8b e5                	mov    %ebp,%esp
412912:	5d                   	pop    %ebp
412913:	c3                   	ret
412914:	8b ff                	mov    %edi,%edi
412916:	55                   	push   %ebp
412917:	8b ec                	mov    %esp,%ebp
412919:	56                   	push   %esi
41291a:	8b f1                	mov    %ecx,%esi
41291c:	57                   	push   %edi
41291d:	8b 7d 08             	mov    0x8(%ebp),%edi
412920:	8b 46 04             	mov    0x4(%esi),%eax
412923:	8b 0e                	mov    (%esi),%ecx
412925:	2b c1                	sub    %ecx,%eax
412927:	3b f8                	cmp    %eax,%edi
412929:	73 13                	jae    0x41293e
41292b:	8d 04 39             	lea    (%ecx,%edi,1),%eax
41292e:	3b c1                	cmp    %ecx,%eax
412930:	75 05                	jne    0x412937
412932:	89 4e 04             	mov    %ecx,0x4(%esi)
412935:	eb 32                	jmp    0x412969
412937:	3b 46 04             	cmp    0x4(%esi),%eax
41293a:	74 2d                	je     0x412969
41293c:	eb 28                	jmp    0x412966
41293e:	76 29                	jbe    0x412969
412940:	2b 4e 04             	sub    0x4(%esi),%ecx
412943:	03 cf                	add    %edi,%ecx
412945:	51                   	push   %ecx
412946:	8b ce                	mov    %esi,%ecx
412948:	e8 41 00 00 00       	call   0x41298e
41294d:	8b 06                	mov    (%esi),%eax
41294f:	2b 46 04             	sub    0x4(%esi),%eax
412952:	03 c7                	add    %edi,%eax
412954:	50                   	push   %eax
412955:	6a 00                	push   $0x0
412957:	ff 76 04             	push   0x4(%esi)
41295a:	e8 02 18 00 00       	call   0x414161
41295f:	8b 06                	mov    (%esi),%eax
412961:	83 c4 0c             	add    $0xc,%esp
412964:	03 c7                	add    %edi,%eax
412966:	89 46 04             	mov    %eax,0x4(%esi)
412969:	5f                   	pop    %edi
41296a:	5e                   	pop    %esi
41296b:	5d                   	pop    %ebp
41296c:	c2 04 00             	ret    $0x4
41296f:	8b ff                	mov    %edi,%edi
412971:	56                   	push   %esi
412972:	8b f1                	mov    %ecx,%esi
412974:	83 3e 00             	cmpl   $0x0,(%esi)
412977:	74 13                	je     0x41298c
412979:	ff 36                	push   (%esi)
41297b:	ff 15 cc b2 41 00    	call   *0x41b2cc
412981:	33 c0                	xor    %eax,%eax
412983:	59                   	pop    %ecx
412984:	89 06                	mov    %eax,(%esi)
412986:	89 46 04             	mov    %eax,0x4(%esi)
412989:	89 46 08             	mov    %eax,0x8(%esi)
41298c:	5e                   	pop    %esi
41298d:	c3                   	ret
41298e:	8b ff                	mov    %edi,%edi
412990:	55                   	push   %ebp
412991:	8b ec                	mov    %esp,%ebp
412993:	56                   	push   %esi
412994:	8b f1                	mov    %ecx,%esi
412996:	57                   	push   %edi
412997:	8b 7e 08             	mov    0x8(%esi),%edi
41299a:	8b c7                	mov    %edi,%eax
41299c:	8b 56 04             	mov    0x4(%esi),%edx
41299f:	2b c2                	sub    %edx,%eax
4129a1:	3b 45 08             	cmp    0x8(%ebp),%eax
4129a4:	73 31                	jae    0x4129d7
4129a6:	8b 06                	mov    (%esi),%eax
4129a8:	2b c2                	sub    %edx,%eax
4129aa:	48                   	dec    %eax
4129ab:	3b 45 08             	cmp    0x8(%ebp),%eax
4129ae:	72 2d                	jb     0x4129dd
4129b0:	2b 3e                	sub    (%esi),%edi
4129b2:	2b 16                	sub    (%esi),%edx
4129b4:	8b cf                	mov    %edi,%ecx
4129b6:	03 55 08             	add    0x8(%ebp),%edx
4129b9:	d1 e9                	shr    $1,%ecx
4129bb:	8b c1                	mov    %ecx,%eax
4129bd:	03 cf                	add    %edi,%ecx
4129bf:	f7 d0                	not    %eax
4129c1:	3b c7                	cmp    %edi,%eax
4129c3:	1b c0                	sbb    %eax,%eax
4129c5:	f7 d0                	not    %eax
4129c7:	23 c1                	and    %ecx,%eax
4129c9:	3b c2                	cmp    %edx,%eax
4129cb:	73 02                	jae    0x4129cf
4129cd:	8b c2                	mov    %edx,%eax
4129cf:	50                   	push   %eax
4129d0:	8b ce                	mov    %esi,%ecx
4129d2:	e8 17 00 00 00       	call   0x4129ee
4129d7:	5f                   	pop    %edi
4129d8:	5e                   	pop    %esi
4129d9:	5d                   	pop    %ebp
4129da:	c2 04 00             	ret    $0x4
4129dd:	e8 01 00 00 00       	call   0x4129e3
4129e2:	cc                   	int3
4129e3:	68 80 42 40 00       	push   $0x404280
4129e8:	e8 03 0b 00 00       	call   0x4134f0
4129ed:	cc                   	int3
4129ee:	8b ff                	mov    %edi,%edi
4129f0:	55                   	push   %ebp
4129f1:	8b ec                	mov    %esp,%ebp
4129f3:	51                   	push   %ecx
4129f4:	53                   	push   %ebx
4129f5:	8b 5d 08             	mov    0x8(%ebp),%ebx
4129f8:	56                   	push   %esi
4129f9:	33 f6                	xor    %esi,%esi
4129fb:	57                   	push   %edi
4129fc:	8b f9                	mov    %ecx,%edi
4129fe:	85 db                	test   %ebx,%ebx
412a00:	74 0d                	je     0x412a0f
412a02:	53                   	push   %ebx
412a03:	e8 8f 09 00 00       	call   0x413397
412a08:	8b f0                	mov    %eax,%esi
412a0a:	59                   	pop    %ecx
412a0b:	85 f6                	test   %esi,%esi
412a0d:	74 3e                	je     0x412a4d
412a0f:	8b 47 04             	mov    0x4(%edi),%eax
412a12:	2b 07                	sub    (%edi),%eax
412a14:	50                   	push   %eax
412a15:	ff 37                	push   (%edi)
412a17:	56                   	push   %esi
412a18:	e8 c7 12 00 00       	call   0x413ce4
412a1d:	8b 47 04             	mov    0x4(%edi),%eax
412a20:	83 c4 0c             	add    $0xc,%esp
412a23:	2b 07                	sub    (%edi),%eax
412a25:	83 3f 00             	cmpl   $0x0,(%edi)
412a28:	89 45 fc             	mov    %eax,-0x4(%ebp)
412a2b:	74 09                	je     0x412a36
412a2d:	ff 37                	push   (%edi)
412a2f:	ff 15 cc b2 41 00    	call   *0x41b2cc
412a35:	59                   	pop    %ecx
412a36:	8d 04 1e             	lea    (%esi,%ebx,1),%eax
412a39:	89 37                	mov    %esi,(%edi)
412a3b:	89 47 08             	mov    %eax,0x8(%edi)
412a3e:	8b 45 fc             	mov    -0x4(%ebp),%eax
412a41:	03 c6                	add    %esi,%eax
412a43:	89 47 04             	mov    %eax,0x4(%edi)
412a46:	5f                   	pop    %edi
412a47:	5e                   	pop    %esi
412a48:	5b                   	pop    %ebx
412a49:	c9                   	leave
412a4a:	c2 04 00             	ret    $0x4
412a4d:	e8 7f 0a 00 00       	call   0x4134d1
412a52:	cc                   	int3
412a53:	83 39 00             	cmpl   $0x0,(%ecx)
412a56:	74 0d                	je     0x412a65
412a58:	83 39 ff             	cmpl   $0xffffffff,(%ecx)
412a5b:	74 08                	je     0x412a65
412a5d:	ff 31                	push   (%ecx)
412a5f:	ff 15 54 b1 41 00    	call   *0x41b154
412a65:	c3                   	ret
412a66:	8b ff                	mov    %edi,%edi
412a68:	55                   	push   %ebp
412a69:	8b ec                	mov    %esp,%ebp
412a6b:	51                   	push   %ecx
412a6c:	51                   	push   %ecx
412a6d:	a1 34 a2 41 00       	mov    0x41a234,%eax
412a72:	85 c0                	test   %eax,%eax
412a74:	75 0b                	jne    0x412a81
412a76:	ff 15 14 b1 41 00    	call   *0x41b114
412a7c:	a3 34 a2 41 00       	mov    %eax,0x41a234
412a81:	83 25 38 a2 41 00 00 	andl   $0x0,0x41a238
412a88:	68 38 a2 41 00       	push   $0x41a238
412a8d:	6a 18                	push   $0x18
412a8f:	50                   	push   %eax
412a90:	ff 15 14 b0 41 00    	call   *0x41b014
412a96:	83 f8 01             	cmp    $0x1,%eax
412a99:	75 39                	jne    0x412ad4
412a9b:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
412a9f:	8d 45 f8             	lea    -0x8(%ebp),%eax
412aa2:	50                   	push   %eax
412aa3:	6a 04                	push   $0x4
412aa5:	8d 45 fc             	lea    -0x4(%ebp),%eax
412aa8:	50                   	push   %eax
412aa9:	6a 1d                	push   $0x1d
412aab:	ff 35 38 a2 41 00    	push   0x41a238
412ab1:	ff 15 18 b0 41 00    	call   *0x41b018
412ab7:	85 c0                	test   %eax,%eax
412ab9:	74 20                	je     0x412adb
412abb:	33 c0                	xor    %eax,%eax
412abd:	c7 05 30 a2 41 00 01 	movl   $0x1,0x41a230
412ac4:	00 00 00
412ac7:	39 45 fc             	cmp    %eax,-0x4(%ebp)
412aca:	0f 95 c0             	setne  %al
412acd:	a3 3c a2 41 00       	mov    %eax,0x41a23c
412ad2:	eb 07                	jmp    0x412adb
412ad4:	83 25 38 a2 41 00 00 	andl   $0x0,0x41a238
412adb:	a1 30 a2 41 00       	mov    0x41a230,%eax
412ae0:	c9                   	leave
412ae1:	c3                   	ret
412ae2:	8b ff                	mov    %edi,%edi
412ae4:	55                   	push   %ebp
412ae5:	8b ec                	mov    %esp,%ebp
412ae7:	51                   	push   %ecx
412ae8:	51                   	push   %ecx
412ae9:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
412aed:	8d 45 fc             	lea    -0x4(%ebp),%eax
412af0:	50                   	push   %eax
412af1:	6a 08                	push   $0x8
412af3:	c7 45 f8 00 02 00 00 	movl   $0x200,-0x8(%ebp)
412afa:	ff 15 14 b1 41 00    	call   *0x41b114
412b00:	50                   	push   %eax
412b01:	ff 15 14 b0 41 00    	call   *0x41b014
412b07:	85 c0                	test   %eax,%eax
412b09:	75 04                	jne    0x412b0f
412b0b:	33 c0                	xor    %eax,%eax
412b0d:	c9                   	leave
412b0e:	c3                   	ret
412b0f:	8d 45 f8             	lea    -0x8(%ebp),%eax
412b12:	50                   	push   %eax
412b13:	ff 75 f8             	push   -0x8(%ebp)
412b16:	68 40 a4 41 00       	push   $0x41a440
412b1b:	6a 01                	push   $0x1
412b1d:	ff 75 fc             	push   -0x4(%ebp)
412b20:	ff 15 18 b0 41 00    	call   *0x41b018
412b26:	85 c0                	test   %eax,%eax
412b28:	75 11                	jne    0x412b3b
412b2a:	ff 15 44 b1 41 00    	call   *0x41b144
412b30:	ff 75 fc             	push   -0x4(%ebp)
412b33:	ff 15 54 b1 41 00    	call   *0x41b154
412b39:	eb d0                	jmp    0x412b0b
412b3b:	ff 75 fc             	push   -0x4(%ebp)
412b3e:	ff 15 54 b1 41 00    	call   *0x41b154
412b44:	a1 40 a4 41 00       	mov    0x41a440,%eax
412b49:	c9                   	leave
412b4a:	c3                   	ret
412b4b:	8b ff                	mov    %edi,%edi
412b4d:	55                   	push   %ebp
412b4e:	8b ec                	mov    %esp,%ebp
412b50:	51                   	push   %ecx
412b51:	51                   	push   %ecx
412b52:	53                   	push   %ebx
412b53:	56                   	push   %esi
412b54:	8b c2                	mov    %edx,%eax
412b56:	33 f6                	xor    %esi,%esi
412b58:	89 45 f8             	mov    %eax,-0x8(%ebp)
412b5b:	8b d9                	mov    %ecx,%ebx
412b5d:	89 75 fc             	mov    %esi,-0x4(%ebp)
412b60:	57                   	push   %edi
412b61:	85 c0                	test   %eax,%eax
412b63:	74 55                	je     0x412bba
412b65:	33 c0                	xor    %eax,%eax
412b67:	66 89 03             	mov    %ax,(%ebx)
412b6a:	e8 73 ff ff ff       	call   0x412ae2
412b6f:	8b f8                	mov    %eax,%edi
412b71:	85 ff                	test   %edi,%edi