54fe4f:	5f                   	pop    %edi
54fe50:	33 c0                	xor    %eax,%eax
54fe52:	5e                   	pop    %esi
54fe53:	5d                   	pop    %ebp
54fe54:	c3                   	ret
54fe55:	5f                   	pop    %edi
54fe56:	b8 02 00 00 00       	mov    $0x2,%eax
54fe5b:	5e                   	pop    %esi
54fe5c:	5d                   	pop    %ebp
54fe5d:	c3                   	ret
54fe5e:	5f                   	pop    %edi
54fe5f:	83 e0 02             	and    $0x2,%eax
54fe62:	5e                   	pop    %esi
54fe63:	5d                   	pop    %ebp
54fe64:	c3                   	ret
54fe65:	cc                   	int3
54fe66:	cc                   	int3
54fe67:	cc                   	int3
54fe68:	cc                   	int3
54fe69:	cc                   	int3
54fe6a:	cc                   	int3
54fe6b:	cc                   	int3
54fe6c:	cc                   	int3
54fe6d:	cc                   	int3
54fe6e:	cc                   	int3
54fe6f:	cc                   	int3
54fe70:	55                   	push   %ebp
54fe71:	8b ec                	mov    %esp,%ebp
54fe73:	56                   	push   %esi
54fe74:	8b 75 08             	mov    0x8(%ebp),%esi
54fe77:	57                   	push   %edi
54fe78:	8b 7d 0c             	mov    0xc(%ebp),%edi
54fe7b:	ff 77 1c             	push   0x1c(%edi)
54fe7e:	56                   	push   %esi
54fe7f:	e8 1c ff ff ff       	call   0x54fda0
54fe84:	83 c4 08             	add    $0x8,%esp
54fe87:	85 c0                	test   %eax,%eax
54fe89:	74 09                	je     0x54fe94
54fe8b:	5f                   	pop    %edi
54fe8c:	b8 02 00 00 00       	mov    $0x2,%eax
54fe91:	5e                   	pop    %esi
54fe92:	5d                   	pop    %ebp
54fe93:	c3                   	ret
54fe94:	8b 47 24             	mov    0x24(%edi),%eax
54fe97:	85 c0                	test   %eax,%eax
54fe99:	74 0e                	je     0x54fea9
54fe9b:	50                   	push   %eax
54fe9c:	56                   	push   %esi
54fe9d:	e8 0e 01 01 00       	call   0x55ffb0
54fea2:	83 c4 08             	add    $0x8,%esp
54fea5:	85 c0                	test   %eax,%eax
54fea7:	75 e2                	jne    0x54fe8b
54fea9:	ff 77 28             	push   0x28(%edi)
54feac:	56                   	push   %esi
54fead:	e8 ee fe ff ff       	call   0x54fda0
54feb2:	83 c4 08             	add    $0x8,%esp
54feb5:	85 c0                	test   %eax,%eax
54feb7:	75 d2                	jne    0x54fe8b
54feb9:	8b 47 2c             	mov    0x2c(%edi),%eax
54febc:	85 c0                	test   %eax,%eax
54febe:	74 0e                	je     0x54fece
54fec0:	50                   	push   %eax
54fec1:	56                   	push   %esi
54fec2:	e8 e9 00 01 00       	call   0x55ffb0
54fec7:	83 c4 08             	add    $0x8,%esp
54feca:	85 c0                	test   %eax,%eax
54fecc:	75 bd                	jne    0x54fe8b
54fece:	ff 77 30             	push   0x30(%edi)
54fed1:	56                   	push   %esi
54fed2:	e8 c9 fe ff ff       	call   0x54fda0
54fed7:	83 c4 08             	add    $0x8,%esp
54feda:	85 c0                	test   %eax,%eax
54fedc:	75 ad                	jne    0x54fe8b
54fede:	8b 47 3c             	mov    0x3c(%edi),%eax
54fee1:	85 c0                	test   %eax,%eax
54fee3:	74 0e                	je     0x54fef3
54fee5:	50                   	push   %eax
54fee6:	56                   	push   %esi
54fee7:	e8 c4 00 01 00       	call   0x55ffb0
54feec:	83 c4 08             	add    $0x8,%esp
54feef:	85 c0                	test   %eax,%eax
54fef1:	75 98                	jne    0x54fe8b
54fef3:	8b 06                	mov    (%esi),%eax
54fef5:	85 c0                	test   %eax,%eax
54fef7:	74 19                	je     0x54ff12
54fef9:	80 b8 c8 00 00 00 02 	cmpb   $0x2,0xc8(%eax)
54ff00:	72 10                	jb     0x54ff12
54ff02:	ff 77 48             	push   0x48(%edi)
54ff05:	56                   	push   %esi
54ff06:	e8 55 01 01 00       	call   0x560060
54ff0b:	83 c4 08             	add    $0x8,%esp
54ff0e:	5f                   	pop    %edi
54ff0f:	5e                   	pop    %esi
54ff10:	5d                   	pop    %ebp
54ff11:	c3                   	ret
54ff12:	5f                   	pop    %edi
54ff13:	33 c0                	xor    %eax,%eax
54ff15:	5e                   	pop    %esi
54ff16:	5d                   	pop    %ebp
54ff17:	c3                   	ret
54ff18:	cc                   	int3
54ff19:	cc                   	int3
54ff1a:	cc                   	int3
54ff1b:	cc                   	int3
54ff1c:	cc                   	int3
54ff1d:	cc                   	int3
54ff1e:	cc                   	int3
54ff1f:	cc                   	int3
54ff20:	55                   	push   %ebp
54ff21:	8b ec                	mov    %esp,%ebp
54ff23:	8b 45 0c             	mov    0xc(%ebp),%eax
54ff26:	53                   	push   %ebx
54ff27:	56                   	push   %esi
54ff28:	57                   	push   %edi
54ff29:	8b 70 20             	mov    0x20(%eax),%esi
54ff2c:	8b 3e                	mov    (%esi),%edi
54ff2e:	85 ff                	test   %edi,%edi
54ff30:	7e 38                	jle    0x54ff6a
54ff32:	8b 5d 08             	mov    0x8(%ebp),%ebx
54ff35:	83 c6 1c             	add    $0x1c,%esi
54ff38:	8b 06                	mov    (%esi),%eax
54ff3a:	85 c0                	test   %eax,%eax
54ff3c:	74 0e                	je     0x54ff4c
54ff3e:	50                   	push   %eax
54ff3f:	53                   	push   %ebx
54ff40:	e8 ab fe ff ff       	call   0x54fdf0
54ff45:	83 c4 08             	add    $0x8,%esp
54ff48:	85 c0                	test   %eax,%eax
54ff4a:	75 25                	jne    0x54ff71
54ff4c:	f6 46 14 04          	testb  $0x4,0x14(%esi)
54ff50:	74 10                	je     0x54ff62
54ff52:	ff 76 2c             	push   0x2c(%esi)
54ff55:	53                   	push   %ebx
54ff56:	e8 45 fe ff ff       	call   0x54fda0
54ff5b:	83 c4 08             	add    $0x8,%esp
54ff5e:	85 c0                	test   %eax,%eax
54ff60:	75 0f                	jne    0x54ff71
54ff62:	4f                   	dec    %edi
54ff63:	83 c6 48             	add    $0x48,%esi
54ff66:	85 ff                	test   %edi,%edi
54ff68:	7f ce                	jg     0x54ff38
54ff6a:	5f                   	pop    %edi
54ff6b:	5e                   	pop    %esi
54ff6c:	33 c0                	xor    %eax,%eax
54ff6e:	5b                   	pop    %ebx
54ff6f:	5d                   	pop    %ebp
54ff70:	c3                   	ret
54ff71:	5f                   	pop    %edi
54ff72:	5e                   	pop    %esi
54ff73:	b8 02 00 00 00       	mov    $0x2,%eax
54ff78:	5b                   	pop    %ebx
54ff79:	5d                   	pop    %ebp
54ff7a:	c3                   	ret
54ff7b:	cc                   	int3
54ff7c:	cc                   	int3
54ff7d:	cc                   	int3
54ff7e:	cc                   	int3
54ff7f:	cc                   	int3
54ff80:	55                   	push   %ebp
54ff81:	8b ec                	mov    %esp,%ebp
54ff83:	83 ec 70             	sub    $0x70,%esp
54ff86:	a1 d4 89 72 00       	mov    0x7289d4,%eax
54ff8b:	33 c5                	xor    %ebp,%eax
54ff8d:	89 45 fc             	mov    %eax,-0x4(%ebp)
54ff90:	8b 45 0c             	mov    0xc(%ebp),%eax
54ff93:	0f 57 c0             	xorps  %xmm0,%xmm0
54ff96:	53                   	push   %ebx
54ff97:	89 45 d8             	mov    %eax,-0x28(%ebp)
54ff9a:	8b 45 10             	mov    0x10(%ebp),%eax
54ff9d:	56                   	push   %esi
54ff9e:	8b 75 08             	mov    0x8(%ebp),%esi
54ffa1:	89 45 b4             	mov    %eax,-0x4c(%ebp)
54ffa4:	8b 45 18             	mov    0x18(%ebp),%eax
54ffa7:	89 45 d4             	mov    %eax,-0x2c(%ebp)
54ffaa:	8b 46 08             	mov    0x8(%esi),%eax
54ffad:	57                   	push   %edi
54ffae:	8b 7d 14             	mov    0x14(%ebp),%edi
54ffb1:	89 45 b0             	mov    %eax,-0x50(%ebp)
54ffb4:	8b 06                	mov    (%esi),%eax
54ffb6:	89 75 dc             	mov    %esi,-0x24(%ebp)
54ffb9:	89 7d bc             	mov    %edi,-0x44(%ebp)
54ffbc:	c6 45 cb 00          	movb   $0x0,-0x35(%ebp)
54ffc0:	89 45 c4             	mov    %eax,-0x3c(%ebp)
54ffc3:	66 0f d6 45 f0       	movq   %xmm0,-0x10(%ebp)
54ffc8:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
54ffcf:	0f 11 45 e0          	movups %xmm0,-0x20(%ebp)
54ffd3:	85 ff                	test   %edi,%edi
54ffd5:	74 0b                	je     0x54ffe2
54ffd7:	33 c9                	xor    %ecx,%ecx
54ffd9:	83 3f 40             	cmpl   $0x40,(%edi)
54ffdc:	0f 4d f9             	cmovge %ecx,%edi
54ffdf:	89 7d bc             	mov    %edi,-0x44(%ebp)
54ffe2:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
54ffe5:	89 7d e8             	mov    %edi,-0x18(%ebp)
54ffe8:	8a 58 4c             	mov    0x4c(%eax),%bl
54ffeb:	8b c1                	mov    %ecx,%eax
54ffed:	25 ff fe 00 00       	and    $0xfeff,%eax
54fff2:	80 e3 10             	and    $0x10,%bl
54fff5:	0f b7 d0             	movzwl %ax,%edx
54fff8:	0f b7 c1             	movzwl %cx,%eax
54fffb:	0f 44 d0             	cmove  %eax,%edx
54fffe:	0f b7 c2             	movzwl %dx,%eax
550001:	8b c8                	mov    %eax,%ecx
550003:	89 4d d0             	mov    %ecx,-0x30(%ebp)
550006:	8b 4d d8             	mov    -0x28(%ebp),%ecx
550009:	8b 09                	mov    (%ecx),%ecx
55000b:	83 f9 40             	cmp    $0x40,%ecx
55000e:	7e 23                	jle    0x550033
550010:	6a 40                	push   $0x40
550012:	68 bc bb 6b 00       	push   $0x6bbbbc
550017:	56                   	push   %esi
550018:	e8 43 32 fd ff       	call   0x523260
55001d:	83 c4 0c             	add    $0xc,%esp
550020:	33 c0                	xor    %eax,%eax
550022:	5f                   	pop    %edi
550023:	5e                   	pop    %esi
550024:	5b                   	pop    %ebx
550025:	8b 4d fc             	mov    -0x4(%ebp),%ecx
550028:	33 cd                	xor    %ebp,%ecx
55002a:	e8 ab 14 09 00       	call   0x5e14da
55002f:	8b e5                	mov    %ebp,%esp
550031:	5d                   	pop    %ebp
550032:	c3                   	ret
550033:	a8 20                	test   $0x20,%al
550035:	b8 01 00 00 00       	mov    $0x1,%eax
55003a:	6a 00                	push   $0x0
55003c:	0f 45 c8             	cmovne %eax,%ecx
55003f:	6b c1 58             	imul   $0x58,%ecx,%eax
550042:	89 4d c0             	mov    %ecx,-0x40(%ebp)
550045:	89 45 cc             	mov    %eax,-0x34(%ebp)
550048:	8d b0 f7 02 00 00    	lea    0x2f7(%eax),%esi
55004e:	83 e6 f8             	and    $0xfffffff8,%esi
550051:	8d 46 48             	lea    0x48(%esi),%eax
550054:	50                   	push   %eax
550055:	8b 45 c4             	mov    -0x3c(%ebp),%eax
550058:	50                   	push   %eax
550059:	e8 82 13 fd ff       	call   0x5213e0
55005e:	8b d8                	mov    %eax,%ebx
550060:	83 c4 0c             	add    $0xc,%esp
550063:	8b 45 c4             	mov    -0x3c(%ebp),%eax
550066:	89 5d ac             	mov    %ebx,-0x54(%ebp)
550069:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
55006d:	74 14                	je     0x550083
55006f:	85 db                	test   %ebx,%ebx
550071:	0f 84 a8 02 00 00    	je     0x55031f
550077:	53                   	push   %ebx
550078:	50                   	push   %eax
550079:	e8 f2 12 fd ff       	call   0x521370
55007e:	e9 99 02 00 00       	jmp    0x55031c
550083:	8b 4d dc             	mov    -0x24(%ebp),%ecx
550086:	0f 57 c0             	xorps  %xmm0,%xmm0
550089:	8b 45 d8             	mov    -0x28(%ebp),%eax
55008c:	89 43 04             	mov    %eax,0x4(%ebx)
55008f:	8b 45 b4             	mov    -0x4c(%ebp),%eax
550092:	89 43 10             	mov    %eax,0x10(%ebx)
550095:	8b 45 d4             	mov    -0x2c(%ebp),%eax
550098:	89 43 0c             	mov    %eax,0xc(%ebx)
55009b:	8b 45 c0             	mov    -0x40(%ebp),%eax
55009e:	89 0b                	mov    %ecx,(%ebx)
5500a0:	89 7b 08             	mov    %edi,0x8(%ebx)
5500a3:	c7 43 18 ff ff ff ff 	movl   $0xffffffff,0x18(%ebx)
5500aa:	c7 43 14 ff ff ff ff 	movl   $0xffffffff,0x14(%ebx)
5500b1:	88 43 2c             	mov    %al,0x2c(%ebx)
5500b4:	8b 41 38             	mov    0x38(%ecx),%eax
5500b7:	48                   	dec    %eax
5500b8:	89 41 38             	mov    %eax,0x38(%ecx)
5500bb:	89 43 1c             	mov    %eax,0x1c(%ebx)
5500be:	89 43 20             	mov    %eax,0x20(%ebx)
5500c1:	8b 45 d0             	mov    -0x30(%ebp),%eax
5500c4:	66 89 43 28          	mov    %ax,0x28(%ebx)
5500c8:	8b 45 20             	mov    0x20(%ebp),%eax
5500cb:	66 89 43 2a          	mov    %ax,0x2a(%ebx)
5500cf:	8b 81 84 00 00 00    	mov    0x84(%ecx),%eax
5500d5:	8d 8b f0 02 00 00    	lea    0x2f0(%ebx),%ecx
5500db:	89 43 24             	mov    %eax,0x24(%ebx)
5500de:	8b 45 cc             	mov    -0x34(%ebp),%eax
5500e1:	83 c0 48             	add    $0x48,%eax
5500e4:	89 4d 90             	mov    %ecx,-0x70(%ebp)
5500e7:	50                   	push   %eax
5500e8:	0f 11 43 2d          	movups %xmm0,0x2d(%ebx)
5500ec:	6a 00                	push   $0x0
5500ee:	0f 11 43 3d          	movups %xmm0,0x3d(%ebx)
5500f2:	66 c7 43 4d 00 00    	movw   $0x0,0x4d(%ebx)
5500f8:	51                   	push   %ecx
5500f9:	c6 43 4f 00          	movb   $0x0,0x4f(%ebx)
5500fd:	e8 fe 38 09 00       	call   0x5e3a00
550102:	89 5d e0             	mov    %ebx,-0x20(%ebp)
550105:	8d 0c 33             	lea    (%ebx,%esi,1),%ecx
550108:	89 4d ec             	mov    %ecx,-0x14(%ebp)
55010b:	8d 43 50             	lea    0x50(%ebx),%eax
55010e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
550111:	8d 93 e8 01 00 00    	lea    0x1e8(%ebx),%edx
550117:	89 45 a8             	mov    %eax,-0x58(%ebp)
55011a:	8d 41 38             	lea    0x38(%ecx),%eax
55011d:	89 41 30             	mov    %eax,0x30(%ecx)
550120:	33 c0                	xor    %eax,%eax
550122:	66 89 41 28          	mov    %ax,0x28(%ecx)
550126:	b8 03 00 00 00       	mov    $0x3,%eax
55012b:	66 89 41 2c          	mov    %ax,0x2c(%ecx)
55012f:	c7 41 24 00 00 00 00 	movl   $0x0,0x24(%ecx)
550136:	8d 4b 50             	lea    0x50(%ebx),%ecx
550139:	c7 42 04 00 00 00 00 	movl   $0x0,0x4(%edx)
550140:	8d 41 18             	lea    0x18(%ecx),%eax
550143:	6a 2c                	push   $0x2c
550145:	ff 75 b4             	push   -0x4c(%ebp)
550148:	89 55 cc             	mov    %edx,-0x34(%ebp)
55014b:	51                   	push   %ecx
55014c:	89 19                	mov    %ebx,(%ecx)
55014e:	c6 41 09 00          	movb   $0x0,0x9(%ecx)
550152:	c7 41 04 00 00 00 00 	movl   $0x0,0x4(%ecx)
550159:	c7 41 0c 00 00 00 00 	movl   $0x0,0xc(%ecx)
550160:	c7 41 10 08 00 00 00 	movl   $0x8,0x10(%ecx)
550167:	89 41 14             	mov    %eax,0x14(%ecx)
55016a:	e8 51 3c 00 00       	call   0x553dc0
55016f:	83 c4 18             	add    $0x18,%esp
550172:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
550176:	75 2d                	jne    0x5501a5
550178:	85 ff                	test   %edi,%edi
55017a:	74 05                	je     0x550181
55017c:	8a 07                	mov    (%edi),%al
55017e:	88 43 2d             	mov    %al,0x2d(%ebx)
550181:	f7 45 d0 00 01 00 00 	testl  $0x100,-0x30(%ebp)
550188:	74 04                	je     0x55018e
55018a:	c6 43 2f 01          	movb   $0x1,0x2f(%ebx)
55018e:	68 d8 bb 6b 00       	push   $0x6bbbd8
550193:	6a 00                	push   $0x0
550195:	ff 75 dc             	push   -0x24(%ebp)
550198:	e8 43 9a ff ff       	call   0x549be0
55019d:	8b 45 d8             	mov    -0x28(%ebp),%eax
5501a0:	83 c4 0c             	add    $0xc,%esp
5501a3:	eb 38                	jmp    0x5501dd
5501a5:	8b 75 d8             	mov    -0x28(%ebp),%esi
5501a8:	33 ff                	xor    %edi,%edi
5501aa:	8b 5d cc             	mov    -0x34(%ebp),%ebx
5501ad:	83 c6 08             	add    $0x8,%esi
5501b0:	8b 4b 04             	mov    0x4(%ebx),%ecx
5501b3:	ff 75 a8             	push   -0x58(%ebp)
5501b6:	8b 46 2c             	mov    0x2c(%esi),%eax
5501b9:	56                   	push   %esi
5501ba:	ff 75 dc             	push   -0x24(%ebp)
5501bd:	89 44 8b 08          	mov    %eax,0x8(%ebx,%ecx,4)
5501c1:	ff 43 04             	incl   0x4(%ebx)
5501c4:	e8 57 3c 00 00       	call   0x553e20
5501c9:	8b 45 d8             	mov    -0x28(%ebp),%eax
5501cc:	47                   	inc    %edi
5501cd:	83 c4 0c             	add    $0xc,%esp
5501d0:	83 c6 48             	add    $0x48,%esi
5501d3:	3b 38                	cmp    (%eax),%edi
5501d5:	7c d9                	jl     0x5501b0
5501d7:	8b 5d ac             	mov    -0x54(%ebp),%ebx