4136ae:	8b f9                	mov    %ecx,%edi
4136b0:	85 d2                	test   %edx,%edx
4136b2:	0f 84 82 e7 00 00    	je     0x421e3a
4136b8:	8b 75 10             	mov    0x10(%ebp),%esi
4136bb:	83 fe ff             	cmp    $0xffffffff,%esi
4136be:	75 14                	jne    0x4136d4
4136c0:	8b f2                	mov    %edx,%esi
4136c2:	8d 4e 02             	lea    0x2(%esi),%ecx
4136c5:	66 8b 06             	mov    (%esi),%ax
4136c8:	83 c6 02             	add    $0x2,%esi
4136cb:	66 85 c0             	test   %ax,%ax
4136ce:	75 f5                	jne    0x4136c5
4136d0:	2b f1                	sub    %ecx,%esi
4136d2:	d1 fe                	sar    $1,%esi
4136d4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4136d7:	8d 04 1e             	lea    (%esi,%ebx,1),%eax
4136da:	89 45 ec             	mov    %eax,-0x14(%ebp)
4136dd:	3b c3                	cmp    %ebx,%eax
4136df:	0f 82 c6 01 00 00    	jb     0x4138ab
4136e5:	83 c0 01             	add    $0x1,%eax
4136e8:	b9 00 00 00 00       	mov    $0x0,%ecx
4136ed:	13 c9                	adc    %ecx,%ecx
4136ef:	85 c9                	test   %ecx,%ecx
4136f1:	72 0f                	jb     0x413702
4136f3:	0f 87 b2 01 00 00    	ja     0x4138ab
4136f9:	83 f8 ff             	cmp    $0xffffffff,%eax
4136fc:	0f 87 a9 01 00 00    	ja     0x4138ab
413702:	8b 4f 08             	mov    0x8(%edi),%ecx
413705:	3b c1                	cmp    %ecx,%eax
413707:	0f 87 0a 01 00 00    	ja     0x413817
41370d:	85 db                	test   %ebx,%ebx
41370f:	75 4c                	jne    0x41375d
413711:	8b 47 04             	mov    0x4(%edi),%eax
413714:	3b d0                	cmp    %eax,%edx
413716:	0f 83 c0 00 00 00    	jae    0x4137dc
41371c:	8b ce                	mov    %esi,%ecx
41371e:	b8 00 00 00 00       	mov    $0x0,%eax
413723:	83 c1 01             	add    $0x1,%ecx
413726:	13 c0                	adc    %eax,%eax
413728:	89 45 f4             	mov    %eax,-0xc(%ebp)
41372b:	85 c0                	test   %eax,%eax
41372d:	72 0f                	jb     0x41373e
41372f:	0f 87 76 01 00 00    	ja     0x4138ab
413735:	83 f9 ff             	cmp    $0xffffffff,%ecx
413738:	0f 87 6d 01 00 00    	ja     0x4138ab
41373e:	8b 07                	mov    (%edi),%eax
413740:	8b 40 04             	mov    0x4(%eax),%eax
413743:	89 45 f4             	mov    %eax,-0xc(%ebp)
413746:	3d 50 98 41 00       	cmp    $0x419850,%eax
41374b:	0f 85 9b 00 00 00    	jne    0x4137ec
413751:	8d 47 10             	lea    0x10(%edi),%eax
413754:	39 47 04             	cmp    %eax,0x4(%edi)
413757:	0f 85 06 e7 00 00    	jne    0x421e63
41375d:	b8 02 00 00 00       	mov    $0x2,%eax
413762:	f7 e6                	mul    %esi
413764:	8b f0                	mov    %eax,%esi
413766:	85 d2                	test   %edx,%edx
413768:	72 0f                	jb     0x413779
41376a:	0f 87 3b 01 00 00    	ja     0x4138ab
413770:	83 fe ff             	cmp    $0xffffffff,%esi
413773:	0f 87 32 01 00 00    	ja     0x4138ab
413779:	b8 02 00 00 00       	mov    $0x2,%eax
41377e:	f7 e3                	mul    %ebx
413780:	85 d2                	test   %edx,%edx
413782:	72 0f                	jb     0x413793
413784:	0f 87 21 01 00 00    	ja     0x4138ab
41378a:	83 f8 ff             	cmp    $0xffffffff,%eax
41378d:	0f 87 18 01 00 00    	ja     0x4138ab
413793:	8d 0c 30             	lea    (%eax,%esi,1),%ecx
413796:	3b c8                	cmp    %eax,%ecx
413798:	0f 82 0d 01 00 00    	jb     0x4138ab
41379e:	8b 47 08             	mov    0x8(%edi),%eax
4137a1:	03 c0                	add    %eax,%eax
4137a3:	3b c8                	cmp    %eax,%ecx
4137a5:	0f 87 da e6 00 00    	ja     0x421e85
4137ab:	8b 45 ec             	mov    -0x14(%ebp),%eax
4137ae:	89 47 0c             	mov    %eax,0xc(%edi)
4137b1:	8b 47 04             	mov    0x4(%edi),%eax
4137b4:	56                   	push   %esi
4137b5:	ff 75 08             	push   0x8(%ebp)
4137b8:	8d 04 58             	lea    (%eax,%ebx,2),%eax
4137bb:	50                   	push   %eax
4137bc:	e8 25 77 00 00       	call   0x41aee6
4137c1:	8b 47 04             	mov    0x4(%edi),%eax
4137c4:	83 c4 0c             	add    $0xc,%esp
4137c7:	8b 4f 0c             	mov    0xc(%edi),%ecx
4137ca:	33 d2                	xor    %edx,%edx
4137cc:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
4137d0:	8b 47 0c             	mov    0xc(%edi),%eax
4137d3:	5f                   	pop    %edi
4137d4:	5e                   	pop    %esi
4137d5:	5b                   	pop    %ebx
4137d6:	8b e5                	mov    %ebp,%esp
4137d8:	5d                   	pop    %ebp
4137d9:	c2 0c 00             	ret    $0xc
4137dc:	8d 04 48             	lea    (%eax,%ecx,2),%eax
4137df:	3b d0                	cmp    %eax,%edx
4137e1:	0f 83 35 ff ff ff    	jae    0x41371c
4137e7:	e9 71 ff ff ff       	jmp    0x41375d
4137ec:	51                   	push   %ecx
4137ed:	3d b0 38 41 00       	cmp    $0x4138b0,%eax
4137f2:	75 0c                	jne    0x413800
4137f4:	8b cf                	mov    %edi,%ecx
4137f6:	e8 b5 00 00 00       	call   0x4138b0
4137fb:	e9 5d ff ff ff       	jmp    0x41375d
413800:	3d 90 39 41 00       	cmp    $0x413990,%eax
413805:	0f 85 89 00 00 00    	jne    0x413894
41380b:	8b cf                	mov    %edi,%ecx
41380d:	e8 7e 01 00 00       	call   0x413990
413812:	e9 46 ff ff ff       	jmp    0x41375d
413817:	8d 04 1e             	lea    (%esi,%ebx,1),%eax
41381a:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
413821:	89 45 f4             	mov    %eax,-0xc(%ebp)
413824:	8d 55 f8             	lea    -0x8(%ebp),%edx
413827:	8d 45 fc             	lea    -0x4(%ebp),%eax
41382a:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
413831:	50                   	push   %eax
413832:	8d 4d f4             	lea    -0xc(%ebp),%ecx
413835:	e8 60 05 00 00       	call   0x413d9a
41383a:	8b 07                	mov    (%edi),%eax
41383c:	ff 75 fc             	push   -0x4(%ebp)
41383f:	8b 00                	mov    (%eax),%eax
413841:	89 45 f4             	mov    %eax,-0xc(%ebp)
413844:	3d 50 49 41 00       	cmp    $0x414950,%eax
413849:	75 0c                	jne    0x413857
41384b:	8b cf                	mov    %edi,%ecx
41384d:	e8 fe 10 00 00       	call   0x414950
413852:	e9 06 ff ff ff       	jmp    0x41375d
413857:	3d a0 71 41 00       	cmp    $0x4171a0,%eax
41385c:	75 0c                	jne    0x41386a
41385e:	8b cf                	mov    %edi,%ecx
413860:	e8 3b 39 00 00       	call   0x4171a0
413865:	e9 f3 fe ff ff       	jmp    0x41375d
41386a:	3d d0 af 40 00       	cmp    $0x40afd0,%eax
41386f:	75 0c                	jne    0x41387d
413871:	8b cf                	mov    %edi,%ecx
413873:	e8 58 77 ff ff       	call   0x40afd0
413878:	e9 e0 fe ff ff       	jmp    0x41375d
41387d:	3d 10 51 41 00       	cmp    $0x415110,%eax
413882:	0f 85 c9 e5 00 00    	jne    0x421e51
413888:	8b cf                	mov    %edi,%ecx
41388a:	e8 81 18 00 00       	call   0x415110
41388f:	e9 c9 fe ff ff       	jmp    0x41375d
413894:	3d 20 9e 41 00       	cmp    $0x419e20,%eax
413899:	0f 85 d4 e5 00 00    	jne    0x421e73
41389f:	8b cf                	mov    %edi,%ecx
4138a1:	e8 7a 65 00 00       	call   0x419e20
4138a6:	e9 b2 fe ff ff       	jmp    0x41375d
4138ab:	e8 23 89 01 00       	call   0x42c1d3
4138b0:	8b ff                	mov    %edi,%edi
4138b2:	55                   	push   %ebp
4138b3:	8b ec                	mov    %esp,%ebp
4138b5:	56                   	push   %esi
4138b6:	8b f1                	mov    %ecx,%esi
4138b8:	57                   	push   %edi
4138b9:	8b 46 04             	mov    0x4(%esi),%eax
4138bc:	8d 7e 10             	lea    0x10(%esi),%edi
4138bf:	3b c7                	cmp    %edi,%eax
4138c1:	75 06                	jne    0x4138c9
4138c3:	5f                   	pop    %edi
4138c4:	5e                   	pop    %esi
4138c5:	5d                   	pop    %ebp
4138c6:	c2 04 00             	ret    $0x4
4138c9:	83 7d 08 20          	cmpl   $0x20,0x8(%ebp)
4138cd:	73 f4                	jae    0x4138c3
4138cf:	e9 c7 e5 00 00       	jmp    0x421e9b
4138d4:	cc                   	int3
4138d5:	cc                   	int3
4138d6:	cc                   	int3
4138d7:	cc                   	int3
4138d8:	cc                   	int3
4138d9:	cc                   	int3
4138da:	cc                   	int3
4138db:	cc                   	int3
4138dc:	cc                   	int3
4138dd:	cc                   	int3
4138de:	cc                   	int3
4138df:	cc                   	int3
4138e0:	8b ff                	mov    %edi,%edi
4138e2:	55                   	push   %ebp
4138e3:	8b ec                	mov    %esp,%ebp
4138e5:	51                   	push   %ecx
4138e6:	56                   	push   %esi
4138e7:	8b 75 08             	mov    0x8(%ebp),%esi
4138ea:	85 f6                	test   %esi,%esi
4138ec:	0f 84 c4 e5 00 00    	je     0x421eb6
4138f2:	8b 91 dc 09 00 00    	mov    0x9dc(%ecx),%edx
4138f8:	53                   	push   %ebx
4138f9:	8b 99 d8 09 00 00    	mov    0x9d8(%ecx),%ebx
4138ff:	57                   	push   %edi
413900:	8d 7b 03             	lea    0x3(%ebx),%edi
413903:	83 e7 fc             	and    $0xfffffffc,%edi
413906:	8b c7                	mov    %edi,%eax
413908:	2b c3                	sub    %ebx,%eax
41390a:	75 5f                	jne    0x41396b
41390c:	8b fb                	mov    %ebx,%edi
41390e:	83 fa 04             	cmp    $0x4,%edx
413911:	72 6e                	jb     0x413981
413913:	8b 81 d4 09 00 00    	mov    0x9d4(%ecx),%eax
413919:	83 c2 fc             	add    $0xfffffffc,%edx
41391c:	8b 18                	mov    (%eax),%ebx
41391e:	83 c0 04             	add    $0x4,%eax
413921:	89 45 fc             	mov    %eax,-0x4(%ebp)
413924:	89 81 d4 09 00 00    	mov    %eax,0x9d4(%ecx)
41392a:	8d 47 04             	lea    0x4(%edi),%eax
41392d:	89 81 d8 09 00 00    	mov    %eax,0x9d8(%ecx)
413933:	8d 04 5d 02 00 00 00 	lea    0x2(,%ebx,2),%eax
41393a:	89 91 dc 09 00 00    	mov    %edx,0x9dc(%ecx)
413940:	3b d0                	cmp    %eax,%edx
413942:	72 44                	jb     0x413988
413944:	8b 55 fc             	mov    -0x4(%ebp),%edx
413947:	89 16                	mov    %edx,(%esi)
413949:	01 81 d4 09 00 00    	add    %eax,0x9d4(%ecx)
41394f:	29 81 dc 09 00 00    	sub    %eax,0x9dc(%ecx)
413955:	01 81 d8 09 00 00    	add    %eax,0x9d8(%ecx)
41395b:	33 c0                	xor    %eax,%eax
41395d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
413960:	89 19                	mov    %ebx,(%ecx)
413962:	5f                   	pop    %edi
413963:	5b                   	pop    %ebx
413964:	5e                   	pop    %esi
413965:	8b e5                	mov    %ebp,%esp
413967:	5d                   	pop    %ebp
413968:	c2 08 00             	ret    $0x8
41396b:	01 81 d4 09 00 00    	add    %eax,0x9d4(%ecx)
413971:	2b d0                	sub    %eax,%edx
413973:	89 91 dc 09 00 00    	mov    %edx,0x9dc(%ecx)
413979:	89 b9 d8 09 00 00    	mov    %edi,0x9d8(%ecx)
41397f:	eb 8d                	jmp    0x41390e
413981:	b8 12 0d 04 80       	mov    $0x80040d12,%eax
413986:	eb da                	jmp    0x413962
413988:	b8 12 0d 04 80       	mov    $0x80040d12,%eax
41398d:	eb ce                	jmp    0x41395d
41398f:	cc                   	int3
413990:	8b ff                	mov    %edi,%edi
413992:	55                   	push   %ebp
413993:	8b ec                	mov    %esp,%ebp
413995:	8d 41 10             	lea    0x10(%ecx),%eax
413998:	39 41 04             	cmp    %eax,0x4(%ecx)
41399b:	0f 85 1f e5 00 00    	jne    0x421ec0
4139a1:	5d                   	pop    %ebp
4139a2:	c2 04 00             	ret    $0x4
4139a5:	6a 10                	push   $0x10
4139a7:	52                   	push   %edx
4139a8:	51                   	push   %ecx
4139a9:	e8 ad a6 00 00       	call   0x41e05b
4139ae:	33 c9                	xor    %ecx,%ecx
4139b0:	83 c4 0c             	add    $0xc,%esp
4139b3:	85 c0                	test   %eax,%eax
4139b5:	0f 94 c1             	sete   %cl
4139b8:	8b c1                	mov    %ecx,%eax
4139ba:	c3                   	ret
4139bb:	8b ff                	mov    %edi,%edi
4139bd:	55                   	push   %ebp
4139be:	8b ec                	mov    %esp,%ebp
4139c0:	53                   	push   %ebx
4139c1:	56                   	push   %esi
4139c2:	57                   	push   %edi
4139c3:	8b 7d 08             	mov    0x8(%ebp),%edi
4139c6:	85 ff                	test   %edi,%edi
4139c8:	74 3d                	je     0x413a07
4139ca:	8b f7                	mov    %edi,%esi
4139cc:	8d 56 02             	lea    0x2(%esi),%edx
4139cf:	66 8b 06             	mov    (%esi),%ax
4139d2:	83 c6 02             	add    $0x2,%esi
4139d5:	66 85 c0             	test   %ax,%ax
4139d8:	75 f5                	jne    0x4139cf
4139da:	2b f2                	sub    %edx,%esi
4139dc:	8d 99 b8 09 00 00    	lea    0x9b8(%ecx),%ebx
4139e2:	d1 fe                	sar    $1,%esi
4139e4:	8b cb                	mov    %ebx,%ecx
4139e6:	56                   	push   %esi
4139e7:	e8 04 be ff ff       	call   0x40f7f0
4139ec:	85 c0                	test   %eax,%eax
4139ee:	78 10                	js     0x413a00
4139f0:	57                   	push   %edi
4139f1:	8d 04 75 02 00 00 00 	lea    0x2(,%esi,2),%eax
4139f8:	8b cb                	mov    %ebx,%ecx
4139fa:	50                   	push   %eax
4139fb:	e8 16 b3 ff ff       	call   0x40ed16
413a00:	5f                   	pop    %edi
413a01:	5e                   	pop    %esi
413a02:	5b                   	pop    %ebx
413a03:	5d                   	pop    %ebp
413a04:	c2 04 00             	ret    $0x4
413a07:	bf cc 3f 40 00       	mov    $0x403fcc,%edi
413a0c:	eb b8                	jmp    0x4139c6
413a0e:	8b ff                	mov    %edi,%edi
413a10:	55                   	push   %ebp
413a11:	8b ec                	mov    %esp,%ebp
413a13:	6a ff                	push   $0xffffffff
413a15:	68 6e e2 41 00       	push   $0x41e26e
413a1a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
413a20:	50                   	push   %eax
413a21:	56                   	push   %esi
413a22:	a1 08 85 43 00       	mov    0x438508,%eax
413a27:	33 c5                	xor    %ebp,%eax
413a29:	50                   	push   %eax
413a2a:	8d 45 f4             	lea    -0xc(%ebp),%eax
413a2d:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
413a33:	8b 09                	mov    (%ecx),%ecx
413a35:	85 c9                	test   %ecx,%ecx
413a37:	75 0e                	jne    0x413a47
413a39:	8b 4d f4             	mov    -0xc(%ebp),%ecx
413a3c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
413a43:	59                   	pop    %ecx
413a44:	5e                   	pop    %esi
413a45:	c9                   	leave
413a46:	c3                   	ret
413a47:	8b 01                	mov    (%ecx),%eax
413a49:	51                   	push   %ecx
413a4a:	8b 70 08             	mov    0x8(%eax),%esi
413a4d:	81 fe a0 b3 40 00    	cmp    $0x40b3a0,%esi
413a53:	74 0c                	je     0x413a61
413a55:	8b ce                	mov    %esi,%ecx
413a57:	ff 15 20 a5 43 00    	call   *0x43a520
413a5d:	ff d6                	call   *%esi
413a5f:	eb d8                	jmp    0x413a39
413a61:	e8 3a 79 ff ff       	call   0x40b3a0
413a66:	eb d1                	jmp    0x413a39
413a68:	cc                   	int3
413a69:	cc                   	int3
413a6a:	cc                   	int3
413a6b:	cc                   	int3
413a6c:	cc                   	int3
413a6d:	cc                   	int3
413a6e:	cc                   	int3
413a6f:	cc                   	int3
413a70:	6a 14                	push   $0x14
413a72:	b8 bb e8 41 00       	mov    $0x41e8bb,%eax
413a77:	e8 fb 73 00 00       	call   0x41ae77
413a7c:	8b f9                	mov    %ecx,%edi
413a7e:	33 db                	xor    %ebx,%ebx
413a80:	53                   	push   %ebx
413a81:	ff 15 ac a0 43 00    	call   *0x43a0ac
413a87:	39 9f 9c 00 00 00    	cmp    %ebx,0x9c(%edi)
413a8d:	74 55                	je     0x413ae4
413a8f:	8b 75 0c             	mov    0xc(%ebp),%esi
413a92:	8b 46 08             	mov    0x8(%esi),%eax
413a95:	89 45 ec             	mov    %eax,-0x14(%ebp)
413a98:	8d 45 e0             	lea    -0x20(%ebp),%eax
413a9b:	50                   	push   %eax
413a9c:	53                   	push   %ebx
413a9d:	53                   	push   %ebx
413a9e:	53                   	push   %ebx
413a9f:	8d 45 ec             	lea    -0x14(%ebp),%eax
413aa2:	50                   	push   %eax
413aa3:	ff 76 04             	push   0x4(%esi)
413aa6:	ff 75 08             	push   0x8(%ebp)
413aa9:	ff b7 9c 00 00 00    	push   0x9c(%edi)