41270d:	8b 46 08             	mov    0x8(%esi),%eax
412710:	8b 3e                	mov    (%esi),%edi
412712:	2b f8                	sub    %eax,%edi
412714:	85 ff                	test   %edi,%edi
412716:	7e 34                	jle    0x41274c
412718:	8b 56 10             	mov    0x10(%esi),%edx
41271b:	57                   	push   %edi
41271c:	50                   	push   %eax
41271d:	52                   	push   %edx
41271e:	e8 5d f7 ff ff       	call   0x411e80
412723:	83 c4 0c             	add    $0xc,%esp
412726:	3b c7                	cmp    %edi,%eax
412728:	8b 46 0c             	mov    0xc(%esi),%eax
41272b:	75 17                	jne    0x412744
41272d:	a8 80                	test   $0x80,%al
41272f:	74 1b                	je     0x41274c
412731:	24 fd                	and    $0xfd,%al
412733:	89 5e 04             	mov    %ebx,0x4(%esi)
412736:	89 46 0c             	mov    %eax,0xc(%esi)
412739:	8b 46 08             	mov    0x8(%esi),%eax
41273c:	89 06                	mov    %eax,(%esi)
41273e:	8b c3                	mov    %ebx,%eax
412740:	5f                   	pop    %edi
412741:	5e                   	pop    %esi
412742:	5b                   	pop    %ebx
412743:	c3                   	ret
412744:	0c 20                	or     $0x20,%al
412746:	83 cb ff             	or     $0xffffffff,%ebx
412749:	89 46 0c             	mov    %eax,0xc(%esi)
41274c:	8b 46 08             	mov    0x8(%esi),%eax
41274f:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
412756:	89 06                	mov    %eax,(%esi)
412758:	5f                   	pop    %edi
412759:	8b c3                	mov    %ebx,%eax
41275b:	5e                   	pop    %esi
41275c:	5b                   	pop    %ebx
41275d:	c3                   	ret
41275e:	90                   	nop
41275f:	90                   	nop
412760:	6a 01                	push   $0x1
412762:	e8 09 00 00 00       	call   0x412770
412767:	83 c4 04             	add    $0x4,%esp
41276a:	c3                   	ret
41276b:	90                   	nop
41276c:	90                   	nop
41276d:	90                   	nop
41276e:	90                   	nop
41276f:	90                   	nop
412770:	51                   	push   %ecx
412771:	53                   	push   %ebx
412772:	55                   	push   %ebp
412773:	56                   	push   %esi
412774:	57                   	push   %edi
412775:	33 f6                	xor    %esi,%esi
412777:	6a 02                	push   $0x2
412779:	89 74 24 14          	mov    %esi,0x14(%esp)
41277d:	33 ed                	xor    %ebp,%ebp
41277f:	e8 bc cc ff ff       	call   0x40f440
412784:	a1 80 89 43 00       	mov    0x438980,%eax
412789:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
41278d:	83 c4 04             	add    $0x4,%esp
412790:	3b c6                	cmp    %esi,%eax
412792:	7e 7c                	jle    0x412810
412794:	b3 83                	mov    $0x83,%bl
412796:	a1 64 79 43 00       	mov    0x437964,%eax
41279b:	8b 04 b0             	mov    (%eax,%esi,4),%eax
41279e:	85 c0                	test   %eax,%eax
4127a0:	74 64                	je     0x412806
4127a2:	84 58 0c             	test   %bl,0xc(%eax)
4127a5:	74 5f                	je     0x412806
4127a7:	50                   	push   %eax
4127a8:	56                   	push   %esi
4127a9:	e8 72 cd ff ff       	call   0x40f520
4127ae:	8b 0d 64 79 43 00    	mov    0x437964,%ecx
4127b4:	83 c4 08             	add    $0x8,%esp
4127b7:	8b 04 b1             	mov    (%ecx,%esi,4),%eax
4127ba:	8b 48 0c             	mov    0xc(%eax),%ecx
4127bd:	84 cb                	test   %cl,%bl
4127bf:	74 32                	je     0x4127f3
4127c1:	83 ff 01             	cmp    $0x1,%edi
4127c4:	75 14                	jne    0x4127da
4127c6:	50                   	push   %eax
4127c7:	e8 e4 fe ff ff       	call   0x4126b0
4127cc:	83 c4 04             	add    $0x4,%esp
4127cf:	83 f8 ff             	cmp    $0xffffffff,%eax
4127d2:	74 1f                	je     0x4127f3
4127d4:	ff 44 24 10          	incl   0x10(%esp)
4127d8:	eb 19                	jmp    0x4127f3
4127da:	85 ff                	test   %edi,%edi
4127dc:	75 15                	jne    0x4127f3
4127de:	f6 c1 02             	test   $0x2,%cl
4127e1:	74 10                	je     0x4127f3
4127e3:	50                   	push   %eax
4127e4:	e8 c7 fe ff ff       	call   0x4126b0
4127e9:	83 c4 04             	add    $0x4,%esp
4127ec:	83 f8 ff             	cmp    $0xffffffff,%eax
4127ef:	75 02                	jne    0x4127f3
4127f1:	0b e8                	or     %eax,%ebp
4127f3:	8b 15 64 79 43 00    	mov    0x437964,%edx
4127f9:	8b 04 b2             	mov    (%edx,%esi,4),%eax
4127fc:	50                   	push   %eax
4127fd:	56                   	push   %esi
4127fe:	e8 8d cd ff ff       	call   0x40f590
412803:	83 c4 08             	add    $0x8,%esp
412806:	a1 80 89 43 00       	mov    0x438980,%eax
41280b:	46                   	inc    %esi
41280c:	3b f0                	cmp    %eax,%esi
41280e:	7c 86                	jl     0x412796
412810:	6a 02                	push   $0x2
412812:	e8 a9 cc ff ff       	call   0x40f4c0
412817:	8b 44 24 14          	mov    0x14(%esp),%eax
41281b:	83 c4 04             	add    $0x4,%esp
41281e:	83 ff 01             	cmp    $0x1,%edi
412821:	74 02                	je     0x412825
412823:	8b c5                	mov    %ebp,%eax
412825:	5f                   	pop    %edi
412826:	5e                   	pop    %esi
412827:	5d                   	pop    %ebp
412828:	5b                   	pop    %ebx
412829:	59                   	pop    %ecx
41282a:	c3                   	ret
41282b:	90                   	nop
41282c:	90                   	nop
41282d:	90                   	nop
41282e:	90                   	nop
41282f:	90                   	nop
412830:	8b 44 24 04          	mov    0x4(%esp),%eax
412834:	81 ec 84 00 00 00    	sub    $0x84,%esp
41283a:	53                   	push   %ebx
41283b:	55                   	push   %ebp
41283c:	bd 01 00 00 00       	mov    $0x1,%ebp
412841:	56                   	push   %esi
412842:	3b c5                	cmp    %ebp,%eax
412844:	57                   	push   %edi
412845:	0f 85 e5 00 00 00    	jne    0x412930
41284b:	8b 9c 24 a0 00 00 00 	mov    0xa0(%esp),%ebx
412852:	8b ac 24 9c 00 00 00 	mov    0x9c(%esp),%ebp
412859:	6a 00                	push   $0x0
41285b:	8d 44 24 18          	lea    0x18(%esp),%eax
41285f:	68 80 00 00 00       	push   $0x80
412864:	50                   	push   %eax
412865:	53                   	push   %ebx
412866:	55                   	push   %ebp
412867:	8d 7c 24 28          	lea    0x28(%esp),%edi
41286b:	c7 44 24 24 00 00 00 	movl   $0x0,0x24(%esp)
412872:	00
412873:	e8 98 02 00 00       	call   0x412b10
412878:	8b f0                	mov    %eax,%esi
41287a:	83 c4 14             	add    $0x14,%esp
41287d:	85 f6                	test   %esi,%esi
41287f:	75 49                	jne    0x4128ca
412881:	ff 15 ec 96 43 00    	call   *0x4396ec
412887:	83 f8 7a             	cmp    $0x7a,%eax
41288a:	75 54                	jne    0x4128e0
41288c:	56                   	push   %esi
41288d:	56                   	push   %esi
41288e:	56                   	push   %esi
41288f:	53                   	push   %ebx
412890:	55                   	push   %ebp
412891:	e8 7a 02 00 00       	call   0x412b10
412896:	8b f0                	mov    %eax,%esi
412898:	83 c4 14             	add    $0x14,%esp
41289b:	85 f6                	test   %esi,%esi
41289d:	74 41                	je     0x4128e0
41289f:	56                   	push   %esi
4128a0:	e8 1b 9c ff ff       	call   0x40c4c0
4128a5:	8b f8                	mov    %eax,%edi
4128a7:	83 c4 04             	add    $0x4,%esp
4128aa:	85 ff                	test   %edi,%edi
4128ac:	74 32                	je     0x4128e0
4128ae:	6a 00                	push   $0x0
4128b0:	56                   	push   %esi
4128b1:	57                   	push   %edi
4128b2:	53                   	push   %ebx
4128b3:	55                   	push   %ebp
4128b4:	c7 44 24 24 01 00 00 	movl   $0x1,0x24(%esp)
4128bb:	00
4128bc:	e8 4f 02 00 00       	call   0x412b10
4128c1:	8b f0                	mov    %eax,%esi
4128c3:	83 c4 14             	add    $0x14,%esp
4128c6:	85 f6                	test   %esi,%esi
4128c8:	74 16                	je     0x4128e0
4128ca:	56                   	push   %esi
4128cb:	e8 f0 9b ff ff       	call   0x40c4c0
4128d0:	8b 8c 24 a8 00 00 00 	mov    0xa8(%esp),%ecx
4128d7:	83 c4 04             	add    $0x4,%esp
4128da:	85 c0                	test   %eax,%eax
4128dc:	89 01                	mov    %eax,(%ecx)
4128de:	75 23                	jne    0x412903
4128e0:	8b 44 24 10          	mov    0x10(%esp),%eax
4128e4:	85 c0                	test   %eax,%eax
4128e6:	0f 84 e2 00 00 00    	je     0x4129ce
4128ec:	57                   	push   %edi
4128ed:	e8 9e 9c ff ff       	call   0x40c590
4128f2:	83 c4 04             	add    $0x4,%esp
4128f5:	83 c8 ff             	or     $0xffffffff,%eax
4128f8:	5f                   	pop    %edi
4128f9:	5e                   	pop    %esi
4128fa:	5d                   	pop    %ebp
4128fb:	5b                   	pop    %ebx
4128fc:	81 c4 84 00 00 00    	add    $0x84,%esp
412902:	c3                   	ret
412903:	56                   	push   %esi
412904:	57                   	push   %edi
412905:	50                   	push   %eax
412906:	e8 25 e2 ff ff       	call   0x410b30
41290b:	8b 44 24 1c          	mov    0x1c(%esp),%eax
41290f:	83 c4 0c             	add    $0xc,%esp
412912:	85 c0                	test   %eax,%eax
412914:	0f 84 a7 00 00 00    	je     0x4129c1
41291a:	57                   	push   %edi
41291b:	e8 70 9c ff ff       	call   0x40c590
412920:	83 c4 04             	add    $0x4,%esp
412923:	33 c0                	xor    %eax,%eax
412925:	5f                   	pop    %edi
412926:	5e                   	pop    %esi
412927:	5d                   	pop    %ebp
412928:	5b                   	pop    %ebx
412929:	81 c4 84 00 00 00    	add    $0x84,%esp
41292f:	c3                   	ret
412930:	85 c0                	test   %eax,%eax
412932:	0f 85 96 00 00 00    	jne    0x4129ce
412938:	8b 94 24 a0 00 00 00 	mov    0xa0(%esp),%edx
41293f:	50                   	push   %eax
412940:	8b 84 24 a0 00 00 00 	mov    0xa0(%esp),%eax
412947:	6a 04                	push   $0x4
412949:	68 c0 74 43 00       	push   $0x4374c0
41294e:	52                   	push   %edx
41294f:	50                   	push   %eax
412950:	e8 8b 00 00 00       	call   0x4129e0
412955:	83 c4 14             	add    $0x14,%esp
412958:	85 c0                	test   %eax,%eax
41295a:	74 72                	je     0x4129ce
41295c:	8b bc 24 a4 00 00 00 	mov    0xa4(%esp),%edi
412963:	be c0 74 43 00       	mov    $0x4374c0,%esi
412968:	c6 07 00             	movb   $0x0,(%edi)
41296b:	a1 54 1d 43 00       	mov    0x431d54,%eax
412970:	8a 1e                	mov    (%esi),%bl
412972:	3b c5                	cmp    %ebp,%eax
412974:	88 5c 24 10          	mov    %bl,0x10(%esp)
412978:	7e 17                	jle    0x412991
41297a:	8b 4c 24 10          	mov    0x10(%esp),%ecx
41297e:	6a 04                	push   $0x4
412980:	81 e1 ff 00 00 00    	and    $0xff,%ecx
412986:	51                   	push   %ecx
412987:	e8 a4 bc ff ff       	call   0x40e630
41298c:	83 c4 08             	add    $0x8,%esp
41298f:	eb 15                	jmp    0x4129a6
412991:	8b 54 24 10          	mov    0x10(%esp),%edx
412995:	a1 48 1b 43 00       	mov    0x431b48,%eax
41299a:	81 e2 ff 00 00 00    	and    $0xff,%edx
4129a0:	8a 04 50             	mov    (%eax,%edx,2),%al
4129a3:	83 e0 04             	and    $0x4,%eax
4129a6:	85 c0                	test   %eax,%eax
4129a8:	74 17                	je     0x4129c1
4129aa:	8a 07                	mov    (%edi),%al
4129ac:	b1 0a                	mov    $0xa,%cl
4129ae:	f6 e9                	imul   %cl
4129b0:	02 c3                	add    %bl,%al
4129b2:	83 c6 02             	add    $0x2,%esi
4129b5:	2c 30                	sub    $0x30,%al
4129b7:	81 fe c8 74 43 00    	cmp    $0x4374c8,%esi
4129bd:	88 07                	mov    %al,(%edi)
4129bf:	7c aa                	jl     0x41296b
4129c1:	33 c0                	xor    %eax,%eax
4129c3:	5f                   	pop    %edi
4129c4:	5e                   	pop    %esi
4129c5:	5d                   	pop    %ebp
4129c6:	5b                   	pop    %ebx
4129c7:	81 c4 84 00 00 00    	add    $0x84,%esp
4129cd:	c3                   	ret
4129ce:	5f                   	pop    %edi
4129cf:	5e                   	pop    %esi
4129d0:	5d                   	pop    %ebp
4129d1:	83 c8 ff             	or     $0xffffffff,%eax
4129d4:	5b                   	pop    %ebx
4129d5:	81 c4 84 00 00 00    	add    $0x84,%esp
4129db:	c3                   	ret
4129dc:	90                   	nop
4129dd:	90                   	nop
4129de:	90                   	nop
4129df:	90                   	nop
4129e0:	a1 cc 74 43 00       	mov    0x4374cc,%eax
4129e5:	53                   	push   %ebx
4129e6:	55                   	push   %ebp
4129e7:	56                   	push   %esi
4129e8:	8b 35 48 96 43 00    	mov    0x439648,%esi
4129ee:	57                   	push   %edi
4129ef:	85 c0                	test   %eax,%eax
4129f1:	75 35                	jne    0x412a28
4129f3:	6a 00                	push   $0x0
4129f5:	6a 00                	push   $0x0
4129f7:	6a 01                	push   $0x1
4129f9:	6a 00                	push   $0x0
4129fb:	ff d6                	call   *%esi
4129fd:	85 c0                	test   %eax,%eax
4129ff:	74 07                	je     0x412a08
412a01:	b8 01 00 00 00       	mov    $0x1,%eax
412a06:	eb 1b                	jmp    0x412a23
412a08:	6a 00                	push   $0x0
412a0a:	6a 00                	push   $0x0
412a0c:	6a 01                	push   $0x1
412a0e:	6a 00                	push   $0x0
412a10:	ff 15 44 96 43 00    	call   *0x439644
412a16:	85 c0                	test   %eax,%eax
412a18:	0f 84 db 00 00 00    	je     0x412af9
412a1e:	b8 02 00 00 00       	mov    $0x2,%eax
412a23:	a3 cc 74 43 00       	mov    %eax,0x4374cc
412a28:	83 f8 01             	cmp    $0x1,%eax
412a2b:	75 1b                	jne    0x412a48
412a2d:	8b 44 24 20          	mov    0x20(%esp),%eax
412a31:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
412a35:	8b 54 24 18          	mov    0x18(%esp),%edx
412a39:	50                   	push   %eax
412a3a:	8b 44 24 18          	mov    0x18(%esp),%eax
412a3e:	51                   	push   %ecx
412a3f:	52                   	push   %edx
412a40:	50                   	push   %eax
412a41:	ff d6                	call   *%esi
412a43:	5f                   	pop    %edi
412a44:	5e                   	pop    %esi
412a45:	5d                   	pop    %ebp
412a46:	5b                   	pop    %ebx
412a47:	c3                   	ret
412a48:	83 f8 02             	cmp    $0x2,%eax
412a4b:	0f 85 ba 00 00 00    	jne    0x412b0b
412a51:	8b 44 24 24          	mov    0x24(%esp),%eax
412a55:	85 c0                	test   %eax,%eax
412a57:	75 0a                	jne    0x412a63
412a59:	8b 0d 80 73 43 00    	mov    0x437380,%ecx
412a5f:	89 4c 24 24          	mov    %ecx,0x24(%esp)
412a63:	8b 5c 24 18          	mov    0x18(%esp),%ebx
412a67:	8b 6c 24 14          	mov    0x14(%esp),%ebp
412a6b:	6a 00                	push   $0x0
412a6d:	6a 00                	push   $0x0
412a6f:	53                   	push   %ebx
412a70:	55                   	push   %ebp
412a71:	ff 15 44 96 43 00    	call   *0x439644
412a77:	8b f0                	mov    %eax,%esi
412a79:	85 f6                	test   %esi,%esi
412a7b:	75 05                	jne    0x412a82
412a7d:	5f                   	pop    %edi
412a7e:	5e                   	pop    %esi
412a7f:	5d                   	pop    %ebp
412a80:	5b                   	pop    %ebx
412a81:	c3                   	ret
412a82:	56                   	push   %esi
412a83:	e8 38 9a ff ff       	call   0x40c4c0
412a88:	8b f8                	mov    %eax,%edi
412a8a:	83 c4 04             	add    $0x4,%esp