55fe37:	33 ff                	xor    %edi,%edi
55fe39:	89 78 04             	mov    %edi,0x4(%eax)
55fe3c:	66 8b 7a 10          	mov    0x10(%edx),%di
55fe40:	66 89 78 18          	mov    %di,0x18(%eax)
55fe44:	8b 7a 14             	mov    0x14(%edx),%edi
55fe47:	89 78 1c             	mov    %edi,0x1c(%eax)
55fe4a:	8b 7a 08             	mov    0x8(%edx),%edi
55fe4d:	89 78 10             	mov    %edi,0x10(%eax)
55fe50:	8b 7a 0c             	mov    0xc(%edx),%edi
55fe53:	89 78 14             	mov    %edi,0x14(%eax)
55fe56:	8b 3a                	mov    (%edx),%edi
55fe58:	89 78 08             	mov    %edi,0x8(%eax)
55fe5b:	8b 7a 04             	mov    0x4(%edx),%edi
55fe5e:	83 c2 20             	add    $0x20,%edx
55fe61:	89 78 0c             	mov    %edi,0xc(%eax)
55fe64:	83 c0 20             	add    $0x20,%eax
55fe67:	0f b7 f9             	movzwl %cx,%edi
55fe6a:	3b 7b 38             	cmp    0x38(%ebx),%edi
55fe6d:	7c c3                	jl     0x55fe32
55fe6f:	66 8b 43 38          	mov    0x38(%ebx),%ax
55fe73:	33 c9                	xor    %ecx,%ecx
55fe75:	8b 54 24 04          	mov    0x4(%esp),%edx
55fe79:	e8 92 4c 01 00       	call   0x574b10
55fe7e:	89 03                	mov    %eax,(%ebx)
55fe80:	85 c0                	test   %eax,%eax
55fe82:	75 08                	jne    0x55fe8c
55fe84:	83 c8 ff             	or     $0xffffffff,%eax
55fe87:	e9 3e 01 00 00       	jmp    0x55ffca
55fe8c:	8b 44 24 04          	mov    0x4(%esp),%eax
55fe90:	e8 ef 84 01 00       	call   0x578384
55fe95:	8b 7b 5c             	mov    0x5c(%ebx),%edi
55fe98:	85 ff                	test   %edi,%edi
55fe9a:	74 20                	je     0x55febc
55fe9c:	8b c7                	mov    %edi,%eax
55fe9e:	e8 b1 2c 00 00       	call   0x562b54
55fea3:	89 43 60             	mov    %eax,0x60(%ebx)
55fea6:	85 c0                	test   %eax,%eax
55fea8:	75 05                	jne    0x55feaf
55feaa:	e8 99 ac ff ff       	call   0x55ab48
55feaf:	8b 43 5c             	mov    0x5c(%ebx),%eax
55feb2:	e8 c1 2b 00 00       	call   0x562a78
55feb7:	33 d2                	xor    %edx,%edx
55feb9:	89 53 5c             	mov    %edx,0x5c(%ebx)
55febc:	8b 46 04             	mov    0x4(%esi),%eax
55febf:	85 c0                	test   %eax,%eax
55fec1:	76 19                	jbe    0x55fedc
55fec3:	8b 53 3c             	mov    0x3c(%ebx),%edx
55fec6:	8b 4a 3c             	mov    0x3c(%edx),%ecx
55fec9:	8b 14 24             	mov    (%esp),%edx
55fecc:	0f b7 52 02          	movzwl 0x2(%edx),%edx
55fed0:	2b ca                	sub    %edx,%ecx
55fed2:	83 c1 fc             	add    $0xfffffffc,%ecx
55fed5:	03 c8                	add    %eax,%ecx
55fed7:	89 4b 64             	mov    %ecx,0x64(%ebx)
55feda:	eb 05                	jmp    0x55fee1
55fedc:	33 c0                	xor    %eax,%eax
55fede:	89 43 64             	mov    %eax,0x64(%ebx)
55fee1:	0f b7 0e             	movzwl (%esi),%ecx
55fee4:	8b 43 2c             	mov    0x2c(%ebx),%eax
55fee7:	3b c8                	cmp    %eax,%ecx
55fee9:	7e 1a                	jle    0x55ff05
55feeb:	68 a6 e6 69 00       	push   $0x69e6a6
55fef0:	68 80 2e 6a 00       	push   $0x6a2e80
55fef5:	e8 d2 a1 01 00       	call   0x57a0cc
55fefa:	83 c4 08             	add    $0x8,%esp
55fefd:	83 c8 ff             	or     $0xffffffff,%eax
55ff00:	e9 c5 00 00 00       	jmp    0x55ffca
55ff05:	0f b7 16             	movzwl (%esi),%edx
55ff08:	8b ca                	mov    %edx,%ecx
55ff0a:	8b 43 30             	mov    0x30(%ebx),%eax
55ff0d:	c1 e1 03             	shl    $0x3,%ecx
55ff10:	2b ca                	sub    %edx,%ecx
55ff12:	c1 e1 03             	shl    $0x3,%ecx
55ff15:	03 c1                	add    %ecx,%eax
55ff17:	8b f8                	mov    %eax,%edi
55ff19:	89 43 34             	mov    %eax,0x34(%ebx)
55ff1c:	33 c0                	xor    %eax,%eax
55ff1e:	8a 46 08             	mov    0x8(%esi),%al
55ff21:	8b 57 28             	mov    0x28(%edi),%edx
55ff24:	3b c2                	cmp    %edx,%eax
55ff26:	74 08                	je     0x55ff30
55ff28:	83 c8 ff             	or     $0xffffffff,%eax
55ff2b:	e9 9a 00 00 00       	jmp    0x55ffca
55ff30:	8b 47 2c             	mov    0x2c(%edi),%eax
55ff33:	85 c0                	test   %eax,%eax
55ff35:	7e 11                	jle    0x55ff48
55ff37:	33 d2                	xor    %edx,%edx
55ff39:	8a 56 08             	mov    0x8(%esi),%dl
55ff3c:	3b c2                	cmp    %edx,%eax
55ff3e:	7f 08                	jg     0x55ff48
55ff40:	83 c8 ff             	or     $0xffffffff,%eax
55ff43:	e9 82 00 00 00       	jmp    0x55ffca
55ff48:	8b 57 2c             	mov    0x2c(%edi),%edx
55ff4b:	85 d2                	test   %edx,%edx
55ff4d:	75 0f                	jne    0x55ff5e
55ff4f:	8a 4e 09             	mov    0x9(%esi),%cl
55ff52:	84 c9                	test   %cl,%cl
55ff54:	76 08                	jbe    0x55ff5e
55ff56:	33 c0                	xor    %eax,%eax
55ff58:	8a 46 09             	mov    0x9(%esi),%al
55ff5b:	89 47 2c             	mov    %eax,0x2c(%edi)
55ff5e:	33 d2                	xor    %edx,%edx
55ff60:	89 57 14             	mov    %edx,0x14(%edi)
55ff63:	8b 0f                	mov    (%edi),%ecx
55ff65:	83 e9 01             	sub    $0x1,%ecx
55ff68:	73 42                	jae    0x55ffac
55ff6a:	c7 07 01 00 00 00    	movl   $0x1,(%edi)
55ff70:	8b 47 20             	mov    0x20(%edi),%eax
55ff73:	85 c0                	test   %eax,%eax
55ff75:	74 17                	je     0x55ff8e
55ff77:	68 30 02 00 00       	push   $0x230
55ff7c:	68 db e6 69 00       	push   $0x69e6db
55ff81:	68 d1 e6 69 00       	push   $0x69e6d1
55ff86:	e8 b5 ab ff ff       	call   0x55ab40
55ff8b:	83 c4 0c             	add    $0xc,%esp
55ff8e:	8b 43 40             	mov    0x40(%ebx),%eax
55ff91:	e8 2a 1e 00 00       	call   0x561dc0
55ff96:	89 47 20             	mov    %eax,0x20(%edi)
55ff99:	85 c0                	test   %eax,%eax
55ff9b:	75 05                	jne    0x55ffa2
55ff9d:	83 c8 ff             	or     $0xffffffff,%eax
55ffa0:	eb 28                	jmp    0x55ffca
55ffa2:	8b 43 40             	mov    0x40(%ebx),%eax
55ffa5:	e8 ae 1e 00 00       	call   0x561e58
55ffaa:	eb 15                	jmp    0x55ffc1
55ffac:	33 c9                	xor    %ecx,%ecx
55ffae:	33 d2                	xor    %edx,%edx
55ffb0:	8a 4e 08             	mov    0x8(%esi),%cl
55ffb3:	8a 56 09             	mov    0x9(%esi),%dl
55ffb6:	49                   	dec    %ecx
55ffb7:	3b d1                	cmp    %ecx,%edx
55ffb9:	75 06                	jne    0x55ffc1
55ffbb:	c7 07 02 00 00 00    	movl   $0x2,(%edi)
55ffc1:	c7 43 54 10 00 00 00 	movl   $0x10,0x54(%ebx)
55ffc8:	33 c0                	xor    %eax,%eax
55ffca:	59                   	pop    %ecx
55ffcb:	5a                   	pop    %edx
55ffcc:	5f                   	pop    %edi
55ffcd:	5e                   	pop    %esi
55ffce:	5b                   	pop    %ebx
55ffcf:	c3                   	ret
55ffd0:	53                   	push   %ebx
55ffd1:	56                   	push   %esi
55ffd2:	57                   	push   %edi
55ffd3:	8b d8                	mov    %eax,%ebx
55ffd5:	55                   	push   %ebp
55ffd6:	51                   	push   %ecx
55ffd7:	8b 73 34             	mov    0x34(%ebx),%esi
55ffda:	85 f6                	test   %esi,%esi
55ffdc:	75 08                	jne    0x55ffe6
55ffde:	83 c8 ff             	or     $0xffffffff,%eax
55ffe1:	e9 1e 02 00 00       	jmp    0x560204
55ffe6:	8b 56 28             	mov    0x28(%esi),%edx
55ffe9:	85 d2                	test   %edx,%edx
55ffeb:	75 31                	jne    0x56001e
55ffed:	8b 46 20             	mov    0x20(%esi),%eax
55fff0:	e8 a7 1e 00 00       	call   0x561e9c
55fff5:	85 c0                	test   %eax,%eax
55fff7:	75 08                	jne    0x560001
55fff9:	83 c8 ff             	or     $0xffffffff,%eax
55fffc:	e9 03 02 00 00       	jmp    0x560204
560001:	8b 46 20             	mov    0x20(%esi),%eax
560004:	e8 eb 1f 00 00       	call   0x561ff4
560009:	8b d6                	mov    %esi,%edx
56000b:	8b c3                	mov    %ebx,%eax
56000d:	e8 fa 01 00 00       	call   0x56020c
560012:	85 c0                	test   %eax,%eax
560014:	74 08                	je     0x56001e
560016:	83 c8 ff             	or     $0xffffffff,%eax
560019:	e9 e6 01 00 00       	jmp    0x560204
56001e:	8b 7b 60             	mov    0x60(%ebx),%edi
560021:	85 ff                	test   %edi,%edi
560023:	74 18                	je     0x56003d
560025:	33 d2                	xor    %edx,%edx
560027:	8b c7                	mov    %edi,%eax
560029:	e8 8a 29 00 00       	call   0x5629b8
56002e:	89 46 18             	mov    %eax,0x18(%esi)
560031:	85 c0                	test   %eax,%eax
560033:	75 08                	jne    0x56003d
560035:	83 c8 ff             	or     $0xffffffff,%eax
560038:	e9 c7 01 00 00       	jmp    0x560204
56003d:	8b 56 14             	mov    0x14(%esi),%edx
560040:	85 d2                	test   %edx,%edx
560042:	74 68                	je     0x5600ac
560044:	8b 4e 18             	mov    0x18(%esi),%ecx
560047:	85 c9                	test   %ecx,%ecx
560049:	75 18                	jne    0x560063
56004b:	33 d2                	xor    %edx,%edx
56004d:	33 c0                	xor    %eax,%eax
56004f:	e8 c8 83 01 00       	call   0x57841c
560054:	89 46 18             	mov    %eax,0x18(%esi)
560057:	85 c0                	test   %eax,%eax
560059:	75 08                	jne    0x560063
56005b:	83 c8 ff             	or     $0xffffffff,%eax
56005e:	e9 a1 01 00 00       	jmp    0x560204
560063:	8b 46 18             	mov    0x18(%esi),%eax
560066:	e8 8d 8b 01 00       	call   0x578bf8
56006b:	8b f8                	mov    %eax,%edi
56006d:	b9 02 00 00 00       	mov    $0x2,%ecx
560072:	33 d2                	xor    %edx,%edx
560074:	8b 46 18             	mov    0x18(%esi),%eax
560077:	e8 ec 8a 01 00       	call   0x578b68
56007c:	8b 56 14             	mov    0x14(%esi),%edx
56007f:	8b 46 18             	mov    0x18(%esi),%eax
560082:	e8 21 2c 00 00       	call   0x562ca8
560087:	85 c0                	test   %eax,%eax
560089:	74 08                	je     0x560093
56008b:	83 c8 ff             	or     $0xffffffff,%eax
56008e:	e9 71 01 00 00       	jmp    0x560204
560093:	33 c9                	xor    %ecx,%ecx
560095:	8b d7                	mov    %edi,%edx
560097:	8b 46 18             	mov    0x18(%esi),%eax
56009a:	e8 c9 8a 01 00       	call   0x578b68
56009f:	8b 46 14             	mov    0x14(%esi),%eax
5600a2:	e8 d1 29 00 00       	call   0x562a78
5600a7:	33 d2                	xor    %edx,%edx
5600a9:	89 56 14             	mov    %edx,0x14(%esi)
5600ac:	e8 9b 9e 01 00       	call   0x579f4c
5600b1:	83 f8 0a             	cmp    $0xa,%eax
5600b4:	7c 0c                	jl     0x5600c2
5600b6:	ba 80 2e 6a 00       	mov    $0x6a2e80,%edx
5600bb:	8b c3                	mov    %ebx,%eax
5600bd:	e8 d2 25 00 00       	call   0x562694
5600c2:	8b 4e 18             	mov    0x18(%esi),%ecx
5600c5:	85 c9                	test   %ecx,%ecx
5600c7:	74 05                	je     0x5600ce
5600c9:	8b 56 18             	mov    0x18(%esi),%edx
5600cc:	eb 03                	jmp    0x5600d1
5600ce:	8b 53 3c             	mov    0x3c(%ebx),%edx
5600d1:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
5600d4:	8b c3                	mov    %ebx,%eax
5600d6:	e8 41 b2 00 00       	call   0x56b31c
5600db:	85 c0                	test   %eax,%eax
5600dd:	74 1a                	je     0x5600f9
5600df:	68 e5 e6 69 00       	push   $0x69e6e5
5600e4:	68 80 2e 6a 00       	push   $0x6a2e80
5600e9:	e8 de 9f 01 00       	call   0x57a0cc
5600ee:	83 c4 08             	add    $0x8,%esp
5600f1:	83 c8 ff             	or     $0xffffffff,%eax
5600f4:	e9 0b 01 00 00       	jmp    0x560204
5600f9:	8b 53 64             	mov    0x64(%ebx),%edx
5600fc:	85 d2                	test   %edx,%edx
5600fe:	0f 8e c5 00 00 00    	jle    0x5601c9
560104:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
560107:	8b 41 3c             	mov    0x3c(%ecx),%eax
56010a:	3b d0                	cmp    %eax,%edx
56010c:	0f 86 9b 00 00 00    	jbe    0x5601ad
560112:	2b d0                	sub    %eax,%edx
560114:	89 14 24             	mov    %edx,(%esp)
560117:	8b 14 24             	mov    (%esp),%edx
56011a:	52                   	push   %edx
56011b:	68 00 e7 69 00       	push   $0x69e700
560120:	68 80 2e 6a 00       	push   $0x6a2e80
560125:	e8 a2 9f 01 00       	call   0x57a0cc
56012a:	83 c4 0c             	add    $0xc,%esp
56012d:	eb 71                	jmp    0x5601a0
56012f:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
560132:	f6 41 08 07          	testb  $0x7,0x8(%ecx)
560136:	75 4b                	jne    0x560183
560138:	8b 7b 3c             	mov    0x3c(%ebx),%edi
56013b:	8b 6f 40             	mov    0x40(%edi),%ebp
56013e:	85 ed                	test   %ebp,%ebp
560140:	7c 13                	jl     0x560155
560142:	8b 47 3c             	mov    0x3c(%edi),%eax
560145:	3b e8                	cmp    %eax,%ebp
560147:	7f 0c                	jg     0x560155
560149:	8b 53 3c             	mov    0x3c(%ebx),%edx
56014c:	83 4a 08 04          	orl    $0x4,0x8(%edx)
560150:	83 c9 ff             	or     $0xffffffff,%ecx
560153:	eb 31                	jmp    0x560186
560155:	8b 43 3c             	mov    0x3c(%ebx),%eax
560158:	ff 48 1c             	decl   0x1c(%eax)
56015b:	79 11                	jns    0x56016e
56015d:	ba 01 00 00 00       	mov    $0x1,%edx
560162:	8b 43 3c             	mov    0x3c(%ebx),%eax
560165:	e8 be 8b 01 00       	call   0x578d28
56016a:	8b c8                	mov    %eax,%ecx
56016c:	eb 18                	jmp    0x560186
56016e:	8b 53 3c             	mov    0x3c(%ebx),%edx
560171:	ff 42 3c             	incl   0x3c(%edx)
560174:	8b 43 3c             	mov    0x3c(%ebx),%eax
560177:	8b 50 18             	mov    0x18(%eax),%edx
56017a:	ff 40 18             	incl   0x18(%eax)
56017d:	33 c9                	xor    %ecx,%ecx
56017f:	8a 0a                	mov    (%edx),%cl
560181:	eb 03                	jmp    0x560186
560183:	83 c9 ff             	or     $0xffffffff,%ecx
560186:	41                   	inc    %ecx
560187:	75 17                	jne    0x5601a0
560189:	68 30 e7 69 00       	push   $0x69e730
56018e:	68 80 2e 6a 00       	push   $0x6a2e80
560193:	e8 34 9f 01 00       	call   0x57a0cc
560198:	83 c4 08             	add    $0x8,%esp
56019b:	83 c8 ff             	or     $0xffffffff,%eax
56019e:	eb 64                	jmp    0x560204
5601a0:	8b 14 24             	mov    (%esp),%edx
5601a3:	83 04 24 ff          	addl   $0xffffffff,(%esp)
5601a7:	85 d2                	test   %edx,%edx
5601a9:	77 84                	ja     0x56012f
5601ab:	eb 1c                	jmp    0x5601c9
5601ad:	8b 53 64             	mov    0x64(%ebx),%edx
5601b0:	3b c2                	cmp    %edx,%eax
5601b2:	76 15                	jbe    0x5601c9
5601b4:	2b c2                	sub    %edx,%eax
5601b6:	50                   	push   %eax
5601b7:	68 3c e7 69 00       	push   $0x69e73c
5601bc:	68 80 2e 6a 00       	push   $0x6a2e80
5601c1:	e8 06 9f 01 00       	call   0x57a0cc
5601c6:	83 c4 0c             	add    $0xc,%esp
5601c9:	8b 46 2c             	mov    0x2c(%esi),%eax
5601cc:	85 c0                	test   %eax,%eax
5601ce:	7e 23                	jle    0x5601f3
5601d0:	48                   	dec    %eax
5601d1:	8b 4e 28             	mov    0x28(%esi),%ecx
5601d4:	3b c1                	cmp    %ecx,%eax
5601d6:	75 1b                	jne    0x5601f3
5601d8:	8b d6                	mov    %esi,%edx
5601da:	8b c3                	mov    %ebx,%eax
5601dc:	e8 43 0f 00 00       	call   0x561124
5601e1:	85 c0                	test   %eax,%eax
5601e3:	74 05                	je     0x5601ea
5601e5:	83 c8 ff             	or     $0xffffffff,%eax
5601e8:	eb 1a                	jmp    0x560204
5601ea:	8b d6                	mov    %esi,%edx
5601ec:	8b c3                	mov    %ebx,%eax
5601ee:	e8 b9 0c 00 00       	call   0x560eac
5601f3:	33 d2                	xor    %edx,%edx
5601f5:	89 53 34             	mov    %edx,0x34(%ebx)
5601f8:	ff 46 28             	incl   0x28(%esi)
5601fb:	33 c0                	xor    %eax,%eax
5601fd:	c7 43 54 08 00 00 00 	movl   $0x8,0x54(%ebx)
560204:	5a                   	pop    %edx
560205:	5d                   	pop    %ebp
560206:	5f                   	pop    %edi
560207:	5e                   	pop    %esi
560208:	5b                   	pop    %ebx
560209:	c3                   	ret
56020a:	90                   	nop
56020b:	90                   	nop
56020c:	53                   	push   %ebx
56020d:	56                   	push   %esi
56020e:	57                   	push   %edi
56020f:	55                   	push   %ebp
560210:	81 c4 74 f5 ff ff    	add    $0xfffff574,%esp
560216:	89 54 24 04          	mov    %edx,0x4(%esp)
56021a:	89 04 24             	mov    %eax,(%esp)
56021d:	8b 44 24 04          	mov    0x4(%esp),%eax
560221:	8b 50 20             	mov    0x20(%eax),%edx
560224:	89 54 24 78          	mov    %edx,0x78(%esp)
560228:	8b 4c 24 04          	mov    0x4(%esp),%ecx