56a981:	ff 74 24 20          	push   0x20(%esp)
56a985:	e8 46 84 06 00       	call   0x5d2dd0
56a98a:	8b 47 04             	mov    0x4(%edi),%eax
56a98d:	83 c4 0c             	add    $0xc,%esp
56a990:	8b 0f                	mov    (%edi),%ecx
56a992:	8b 00                	mov    (%eax),%eax
56a994:	89 01                	mov    %eax,(%ecx)
56a996:	8b 07                	mov    (%edi),%eax
56a998:	8b 4f 04             	mov    0x4(%edi),%ecx
56a99b:	8b 40 04             	mov    0x4(%eax),%eax
56a99e:	89 41 04             	mov    %eax,0x4(%ecx)
56a9a1:	8b 4c 24 14          	mov    0x14(%esp),%ecx
56a9a5:	8d 04 31             	lea    (%ecx,%esi,1),%eax
56a9a8:	50                   	push   %eax
56a9a9:	ff 33                	push   (%ebx)
56a9ab:	e8 10 0d fa ff       	call   0x50b6c0
56a9b0:	83 c4 08             	add    $0x8,%esp
56a9b3:	85 c0                	test   %eax,%eax
56a9b5:	0f 84 61 ff ff ff    	je     0x56a91c
56a9bb:	8b 03                	mov    (%ebx),%eax
56a9bd:	56                   	push   %esi
56a9be:	55                   	push   %ebp
56a9bf:	8b 40 04             	mov    0x4(%eax),%eax
56a9c2:	03 44 24 1c          	add    0x1c(%esp),%eax
56a9c6:	50                   	push   %eax
56a9c7:	e8 04 84 06 00       	call   0x5d2dd0
56a9cc:	8b 03                	mov    (%ebx),%eax
56a9ce:	83 c4 0c             	add    $0xc,%esp
56a9d1:	8b 4b 04             	mov    0x4(%ebx),%ecx
56a9d4:	0f 10 00             	movups (%eax),%xmm0
56a9d7:	5f                   	pop    %edi
56a9d8:	8b c6                	mov    %esi,%eax
56a9da:	5e                   	pop    %esi
56a9db:	5d                   	pop    %ebp
56a9dc:	0f 11 01             	movups %xmm0,(%ecx)
56a9df:	5b                   	pop    %ebx
56a9e0:	c3                   	ret
56a9e1:	cc                   	int3
56a9e2:	cc                   	int3
56a9e3:	cc                   	int3
56a9e4:	cc                   	int3
56a9e5:	cc                   	int3
56a9e6:	cc                   	int3
56a9e7:	cc                   	int3
56a9e8:	cc                   	int3
56a9e9:	cc                   	int3
56a9ea:	cc                   	int3
56a9eb:	cc                   	int3
56a9ec:	cc                   	int3
56a9ed:	cc                   	int3
56a9ee:	cc                   	int3
56a9ef:	cc                   	int3
56a9f0:	55                   	push   %ebp
56a9f1:	8b 6c 24 08          	mov    0x8(%esp),%ebp
56a9f5:	56                   	push   %esi
56a9f6:	f7 45 18 00 02 00 00 	testl  $0x200,0x18(%ebp)
56a9fd:	8b 45 24             	mov    0x24(%ebp),%eax
56aa00:	8b 70 04             	mov    0x4(%eax),%esi
56aa03:	74 02                	je     0x56aa07
56aa05:	8b 30                	mov    (%eax),%esi
56aa07:	6a 0f                	push   $0xf
56aa09:	55                   	push   %ebp
56aa0a:	e8 f1 e0 f8 ff       	call   0x4f8b00
56aa0f:	8b 54 24 1c          	mov    0x1c(%esp),%edx
56aa13:	83 c4 08             	add    $0x8,%esp
56aa16:	4a                   	dec    %edx
56aa17:	3b 16                	cmp    (%esi),%edx
56aa19:	0f 4d 16             	cmovge (%esi),%edx
56aa1c:	85 d2                	test   %edx,%edx
56aa1e:	7f 0c                	jg     0x56aa2c
56aa20:	8b 44 24 10          	mov    0x10(%esp),%eax
56aa24:	5e                   	pop    %esi
56aa25:	5d                   	pop    %ebp
56aa26:	c6 00 00             	movb   $0x0,(%eax)
56aa29:	33 c0                	xor    %eax,%eax
56aa2b:	c3                   	ret
56aa2c:	8b 4e 04             	mov    0x4(%esi),%ecx
56aa2f:	33 f6                	xor    %esi,%esi
56aa31:	80 3c 0e 0a          	cmpb   $0xa,(%esi,%ecx,1)
56aa35:	74 07                	je     0x56aa3e
56aa37:	46                   	inc    %esi
56aa38:	3b f2                	cmp    %edx,%esi
56aa3a:	7c f5                	jl     0x56aa31
56aa3c:	eb 01                	jmp    0x56aa3f
56aa3e:	46                   	inc    %esi
56aa3f:	f7 45 18 00 02 00 00 	testl  $0x200,0x18(%ebp)
56aa46:	8b 45 24             	mov    0x24(%ebp),%eax
56aa49:	53                   	push   %ebx
56aa4a:	57                   	push   %edi
56aa4b:	8b 58 04             	mov    0x4(%eax),%ebx
56aa4e:	74 02                	je     0x56aa52
56aa50:	8b 18                	mov    (%eax),%ebx
56aa52:	6a 0f                	push   $0xf
56aa54:	55                   	push   %ebp
56aa55:	e8 a6 e0 f8 ff       	call   0x4f8b00
56aa5a:	83 c4 08             	add    $0x8,%esp
56aa5d:	85 f6                	test   %esi,%esi
56aa5f:	78 06                	js     0x56aa67
56aa61:	8b 3b                	mov    (%ebx),%edi
56aa63:	3b f7                	cmp    %edi,%esi
56aa65:	77 02                	ja     0x56aa69
56aa67:	8b fe                	mov    %esi,%edi
56aa69:	8b 74 24 18          	mov    0x18(%esp),%esi
56aa6d:	85 f6                	test   %esi,%esi
56aa6f:	74 24                	je     0x56aa95
56aa71:	85 ff                	test   %edi,%edi
56aa73:	7e 20                	jle    0x56aa95
56aa75:	57                   	push   %edi
56aa76:	ff 73 04             	push   0x4(%ebx)
56aa79:	56                   	push   %esi
56aa7a:	e8 51 83 06 00       	call   0x5d2dd0
56aa7f:	29 3b                	sub    %edi,(%ebx)
56aa81:	83 c4 0c             	add    $0xc,%esp
56aa84:	29 7b 08             	sub    %edi,0x8(%ebx)
56aa87:	8b c7                	mov    %edi,%eax
56aa89:	01 7b 04             	add    %edi,0x4(%ebx)
56aa8c:	c6 04 37 00          	movb   $0x0,(%edi,%esi,1)
56aa90:	5f                   	pop    %edi
56aa91:	5b                   	pop    %ebx
56aa92:	5e                   	pop    %esi
56aa93:	5d                   	pop    %ebp
56aa94:	c3                   	ret
56aa95:	83 3b 00             	cmpl   $0x0,(%ebx)
56aa98:	75 12                	jne    0x56aaac
56aa9a:	8b 7d 20             	mov    0x20(%ebp),%edi
56aa9d:	85 ff                	test   %edi,%edi
56aa9f:	74 13                	je     0x56aab4
56aaa1:	6a 09                	push   $0x9
56aaa3:	55                   	push   %ebp
56aaa4:	e8 d7 e9 f8 ff       	call   0x4f9480
56aaa9:	83 c4 08             	add    $0x8,%esp
56aaac:	85 ff                	test   %edi,%edi
56aaae:	7e 04                	jle    0x56aab4
56aab0:	c6 04 37 00          	movb   $0x0,(%edi,%esi,1)
56aab4:	8b c7                	mov    %edi,%eax
56aab6:	5f                   	pop    %edi
56aab7:	5b                   	pop    %ebx
56aab8:	5e                   	pop    %esi
56aab9:	5d                   	pop    %ebp
56aaba:	c3                   	ret
56aabb:	cc                   	int3
56aabc:	cc                   	int3
56aabd:	cc                   	int3
56aabe:	cc                   	int3
56aabf:	cc                   	int3
56aac0:	53                   	push   %ebx
56aac1:	55                   	push   %ebp
56aac2:	56                   	push   %esi
56aac3:	57                   	push   %edi
56aac4:	8b 7c 24 14          	mov    0x14(%esp),%edi
56aac8:	bb 01 00 00 00       	mov    $0x1,%ebx
56aacd:	8b 6f 18             	mov    0x18(%edi),%ebp
56aad0:	8b d5                	mov    %ebp,%edx
56aad2:	8b 77 24             	mov    0x24(%edi),%esi
56aad5:	81 e2 00 02 00 00    	and    $0x200,%edx
56aadb:	74 04                	je     0x56aae1
56aadd:	8b 0e                	mov    (%esi),%ecx
56aadf:	eb 03                	jmp    0x56aae4
56aae1:	8b 4e 04             	mov    0x4(%esi),%ecx
56aae4:	8b 44 24 18          	mov    0x18(%esp),%eax
56aae8:	48                   	dec    %eax
56aae9:	3d 81 00 00 00       	cmp    $0x81,%eax
56aaee:	0f 87 17 01 00 00    	ja     0x56ac0b
56aaf4:	0f b6 80 44 ac 56 00 	movzbl 0x56ac44(%eax),%eax
56aafb:	ff 24 85 14 ac 56 00 	jmp    *0x56ac14(,%eax,4)
56ab02:	8b 3e                	mov    (%esi),%edi
56ab04:	8b 47 04             	mov    0x4(%edi),%eax
56ab07:	85 c0                	test   %eax,%eax
56ab09:	0f 84 fe 00 00 00    	je     0x56ac0d
56ab0f:	85 d2                	test   %edx,%edx
56ab11:	75 2d                	jne    0x56ab40
56ab13:	f7 c5 00 04 00 00    	test   $0x400,%ebp
56ab19:	75 15                	jne    0x56ab30
56ab1b:	ff 77 08             	push   0x8(%edi)
56ab1e:	52                   	push   %edx
56ab1f:	50                   	push   %eax
56ab20:	e8 4b 81 06 00       	call   0x5d2c70
56ab25:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
56ab2b:	83 c4 0c             	add    $0xc,%esp
56ab2e:	8b 3e                	mov    (%esi),%edi
56ab30:	8b 46 04             	mov    0x4(%esi),%eax
56ab33:	0f 10 07             	movups (%edi),%xmm0
56ab36:	5f                   	pop    %edi
56ab37:	5e                   	pop    %esi
56ab38:	0f 11 00             	movups %xmm0,(%eax)
56ab3b:	5d                   	pop    %ebp
56ab3c:	8b c3                	mov    %ebx,%eax
56ab3e:	5b                   	pop    %ebx
56ab3f:	c3                   	ret
56ab40:	8b 46 04             	mov    0x4(%esi),%eax
56ab43:	0f 10 00             	movups (%eax),%xmm0
56ab46:	8b c3                	mov    %ebx,%eax
56ab48:	0f 11 07             	movups %xmm0,(%edi)
56ab4b:	5f                   	pop    %edi
56ab4c:	5e                   	pop    %esi
56ab4d:	5d                   	pop    %ebp
56ab4e:	5b                   	pop    %ebx
56ab4f:	c3                   	ret
56ab50:	33 db                	xor    %ebx,%ebx
56ab52:	39 19                	cmp    %ebx,(%ecx)
56ab54:	5f                   	pop    %edi
56ab55:	5e                   	pop    %esi
56ab56:	0f 94 c3             	sete   %bl
56ab59:	5d                   	pop    %ebp
56ab5a:	8b c3                	mov    %ebx,%eax
56ab5c:	5b                   	pop    %ebx
56ab5d:	c3                   	ret
56ab5e:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56ab62:	89 47 20             	mov    %eax,0x20(%edi)
56ab65:	8b c3                	mov    %ebx,%eax
56ab67:	5f                   	pop    %edi
56ab68:	5e                   	pop    %esi
56ab69:	5d                   	pop    %ebp
56ab6a:	5b                   	pop    %ebx
56ab6b:	c3                   	ret
56ab6c:	8b 54 24 20          	mov    0x20(%esp),%edx
56ab70:	8b 19                	mov    (%ecx),%ebx
56ab72:	85 d2                	test   %edx,%edx
56ab74:	0f 84 93 00 00 00    	je     0x56ac0d
56ab7a:	8b 41 04             	mov    0x4(%ecx),%eax
56ab7d:	5f                   	pop    %edi
56ab7e:	5e                   	pop    %esi
56ab7f:	89 02                	mov    %eax,(%edx)
56ab81:	8b c3                	mov    %ebx,%eax
56ab83:	5d                   	pop    %ebp
56ab84:	5b                   	pop    %ebx
56ab85:	c3                   	ret
56ab86:	83 7f 14 00          	cmpl   $0x0,0x14(%edi)
56ab8a:	74 20                	je     0x56abac
56ab8c:	83 7f 10 00          	cmpl   $0x0,0x10(%edi)
56ab90:	74 1a                	je     0x56abac
56ab92:	85 f6                	test   %esi,%esi
56ab94:	74 16                	je     0x56abac
56ab96:	8b 06                	mov    (%esi),%eax
56ab98:	85 d2                	test   %edx,%edx
56ab9a:	74 07                	je     0x56aba3
56ab9c:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
56aba3:	50                   	push   %eax
56aba4:	e8 e7 09 fa ff       	call   0x50b590
56aba9:	83 c4 04             	add    $0x4,%esp
56abac:	8b 4c 24 20          	mov    0x20(%esp),%ecx
56abb0:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56abb4:	89 47 14             	mov    %eax,0x14(%edi)
56abb7:	8b 46 04             	mov    0x4(%esi),%eax
56abba:	89 0e                	mov    %ecx,(%esi)
56abbc:	0f 10 01             	movups (%ecx),%xmm0
56abbf:	5f                   	pop    %edi
56abc0:	5e                   	pop    %esi
56abc1:	0f 11 00             	movups %xmm0,(%eax)
56abc4:	5d                   	pop    %ebp
56abc5:	8b c3                	mov    %ebx,%eax
56abc7:	5b                   	pop    %ebx
56abc8:	c3                   	ret
56abc9:	8b 6c 24 20          	mov    0x20(%esp),%ebp
56abcd:	85 ed                	test   %ebp,%ebp
56abcf:	74 3c                	je     0x56ac0d
56abd1:	85 d2                	test   %edx,%edx
56abd3:	75 09                	jne    0x56abde
56abd5:	57                   	push   %edi
56abd6:	e8 25 02 00 00       	call   0x56ae00
56abdb:	83 c4 04             	add    $0x4,%esp
56abde:	8b 06                	mov    (%esi),%eax
56abe0:	5f                   	pop    %edi
56abe1:	5e                   	pop    %esi
56abe2:	89 45 00             	mov    %eax,0x0(%ebp)
56abe5:	8b c3                	mov    %ebx,%eax
56abe7:	5d                   	pop    %ebp
56abe8:	5b                   	pop    %ebx
56abe9:	c3                   	ret
56abea:	8b 5f 14             	mov    0x14(%edi),%ebx
56abed:	8b c3                	mov    %ebx,%eax
56abef:	5f                   	pop    %edi
56abf0:	5e                   	pop    %esi
56abf1:	5d                   	pop    %ebp
56abf2:	5b                   	pop    %ebx
56abf3:	c3                   	ret
56abf4:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56abf8:	89 47 14             	mov    %eax,0x14(%edi)
56abfb:	8b c3                	mov    %ebx,%eax
56abfd:	5f                   	pop    %edi
56abfe:	5e                   	pop    %esi
56abff:	5d                   	pop    %ebp
56ac00:	5b                   	pop    %ebx
56ac01:	c3                   	ret
56ac02:	8b 19                	mov    (%ecx),%ebx
56ac04:	8b c3                	mov    %ebx,%eax
56ac06:	5f                   	pop    %edi
56ac07:	5e                   	pop    %esi
56ac08:	5d                   	pop    %ebp
56ac09:	5b                   	pop    %ebx
56ac0a:	c3                   	ret
56ac0b:	33 db                	xor    %ebx,%ebx
56ac0d:	5f                   	pop    %edi
56ac0e:	5e                   	pop    %esi
56ac0f:	5d                   	pop    %ebp
56ac10:	8b c3                	mov    %ebx,%eax
56ac12:	5b                   	pop    %ebx
56ac13:	c3                   	ret
56ac14:	02 ab 56 00 50 ab    	add    -0x54afffaa(%ebx),%ch
56ac1a:	56                   	push   %esi
56ac1b:	00 6c ab 56          	add    %ch,0x56(%ebx,%ebp,4)
56ac1f:	00 ea                	add    %ch,%dl
56ac21:	ab                   	stos   %eax,%es:(%edi)
56ac22:	56                   	push   %esi
56ac23:	00 f4                	add    %dh,%ah
56ac25:	ab                   	stos   %eax,%es:(%edi)
56ac26:	56                   	push   %esi
56ac27:	00 02                	add    %al,(%edx)
56ac29:	ac                   	lods   %ds:(%esi),%al
56ac2a:	56                   	push   %esi
56ac2b:	00 0d ac 56 00 0b    	add    %cl,0xb0056ac
56ac31:	ac                   	lods   %ds:(%esi),%al
56ac32:	56                   	push   %esi
56ac33:	00 86 ab 56 00 c9    	add    %al,-0x36ffa955(%esi)
56ac39:	ab                   	stos   %eax,%es:(%edi)
56ac3a:	56                   	push   %esi
56ac3b:	00 5e ab             	add    %bl,-0x55(%esi)
56ac3e:	56                   	push   %esi
56ac3f:	00 0b                	add    %cl,(%ebx)
56ac41:	ac                   	lods   %ds:(%esi),%al
56ac42:	56                   	push   %esi
56ac43:	00 00                	add    %al,(%eax)
56ac45:	01 02                	add    %eax,(%edx)
56ac47:	0b 0b                	or     (%ebx),%ecx
56ac49:	0b 0b                	or     (%ebx),%ecx
56ac4b:	03 04 05 06 06 07 0b 	add    0xb070606(,%eax,1),%eax
56ac52:	0b 0b                	or     (%ebx),%ecx
56ac54:	0b 0b                	or     (%ebx),%ecx
56ac56:	0b 0b                	or     (%ebx),%ecx
56ac58:	0b 0b                	or     (%ebx),%ecx
56ac5a:	0b 0b                	or     (%ebx),%ecx
56ac5c:	0b 0b                	or     (%ebx),%ecx
56ac5e:	0b 0b                	or     (%ebx),%ecx
56ac60:	0b 0b                	or     (%ebx),%ecx
56ac62:	0b 0b                	or     (%ebx),%ecx
56ac64:	0b 0b                	or     (%ebx),%ecx
56ac66:	0b 0b                	or     (%ebx),%ecx
56ac68:	0b 0b                	or     (%ebx),%ecx
56ac6a:	0b 0b                	or     (%ebx),%ecx
56ac6c:	0b 0b                	or     (%ebx),%ecx
56ac6e:	0b 0b                	or     (%ebx),%ecx
56ac70:	0b 0b                	or     (%ebx),%ecx
56ac72:	0b 0b                	or     (%ebx),%ecx
56ac74:	0b 0b                	or     (%ebx),%ecx
56ac76:	0b 0b                	or     (%ebx),%ecx
56ac78:	0b 0b                	or     (%ebx),%ecx
56ac7a:	0b 0b                	or     (%ebx),%ecx
56ac7c:	0b 0b                	or     (%ebx),%ecx
56ac7e:	0b 0b                	or     (%ebx),%ecx
56ac80:	0b 0b                	or     (%ebx),%ecx