402ee6:	50                   	push   %eax
402ee7:	e8 1c 6b 06 00       	call   0x469a08
402eec:	8b 45 fc             	mov    -0x4(%ebp),%eax
402eef:	83 c4 08             	add    $0x8,%esp
402ef2:	89 07                	mov    %eax,(%edi)
402ef4:	8b c7                	mov    %edi,%eax
402ef6:	5f                   	pop    %edi
402ef7:	5e                   	pop    %esi
402ef8:	5b                   	pop    %ebx
402ef9:	8b e5                	mov    %ebp,%esp
402efb:	5d                   	pop    %ebp
402efc:	c2 08 00             	ret    $0x8
402eff:	e8 2d 67 07 00       	call   0x479631
402f04:	e8 d7 e4 ff ff       	call   0x4013e0
402f09:	cc                   	int3
402f0a:	cc                   	int3
402f0b:	cc                   	int3
402f0c:	cc                   	int3
402f0d:	cc                   	int3
402f0e:	cc                   	int3
402f0f:	cc                   	int3
402f10:	55                   	push   %ebp
402f11:	8b ec                	mov    %esp,%ebp
402f13:	83 ec 14             	sub    $0x14,%esp
402f16:	8b 45 08             	mov    0x8(%ebp),%eax
402f19:	53                   	push   %ebx
402f1a:	56                   	push   %esi
402f1b:	8b f1                	mov    %ecx,%esi
402f1d:	89 45 f0             	mov    %eax,-0x10(%ebp)
402f20:	8b 4d 0c             	mov    0xc(%ebp),%ecx
402f23:	57                   	push   %edi
402f24:	89 4d f4             	mov    %ecx,-0xc(%ebp)
402f27:	8b 5e 14             	mov    0x14(%esi),%ebx
402f2a:	8b c3                	mov    %ebx,%eax
402f2c:	8b 56 10             	mov    0x10(%esi),%edx
402f2f:	2b c2                	sub    %edx,%eax
402f31:	89 55 fc             	mov    %edx,-0x4(%ebp)
402f34:	3b c8                	cmp    %eax,%ecx
402f36:	77 38                	ja     0x402f70
402f38:	8d 04 11             	lea    (%ecx,%edx,1),%eax
402f3b:	8b fe                	mov    %esi,%edi
402f3d:	89 45 fc             	mov    %eax,-0x4(%ebp)
402f40:	89 46 10             	mov    %eax,0x10(%esi)
402f43:	83 fb 08             	cmp    $0x8,%ebx
402f46:	72 02                	jb     0x402f4a
402f48:	8b 3e                	mov    (%esi),%edi
402f4a:	03 c9                	add    %ecx,%ecx
402f4c:	51                   	push   %ecx
402f4d:	ff 75 f0             	push   -0x10(%ebp)
402f50:	8d 0c 57             	lea    (%edi,%edx,2),%ecx
402f53:	51                   	push   %ecx
402f54:	e8 c7 86 06 00       	call   0x46b620
402f59:	8b 45 fc             	mov    -0x4(%ebp),%eax
402f5c:	83 c4 0c             	add    $0xc,%esp
402f5f:	33 c9                	xor    %ecx,%ecx
402f61:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
402f65:	8b c6                	mov    %esi,%eax
402f67:	5f                   	pop    %edi
402f68:	5e                   	pop    %esi
402f69:	5b                   	pop    %ebx
402f6a:	8b e5                	mov    %ebp,%esp
402f6c:	5d                   	pop    %ebp
402f6d:	c2 08 00             	ret    $0x8
402f70:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
402f75:	2b c2                	sub    %edx,%eax
402f77:	3b c1                	cmp    %ecx,%eax
402f79:	0f 82 01 01 00 00    	jb     0x403080
402f7f:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
402f82:	8b f8                	mov    %eax,%edi
402f84:	89 45 f8             	mov    %eax,-0x8(%ebp)
402f87:	83 cf 07             	or     $0x7,%edi
402f8a:	81 ff fe ff ff 7f    	cmp    $0x7ffffffe,%edi
402f90:	76 07                	jbe    0x402f99
402f92:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
402f97:	eb 1e                	jmp    0x402fb7
402f99:	8b cb                	mov    %ebx,%ecx
402f9b:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
402fa0:	d1 e9                	shr    $1,%ecx
402fa2:	2b c1                	sub    %ecx,%eax
402fa4:	3b d8                	cmp    %eax,%ebx
402fa6:	76 07                	jbe    0x402faf
402fa8:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
402fad:	eb 08                	jmp    0x402fb7
402faf:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
402fb2:	3b f8                	cmp    %eax,%edi
402fb4:	0f 42 f8             	cmovb  %eax,%edi
402fb7:	8d 47 01             	lea    0x1(%edi),%eax
402fba:	8b ce                	mov    %esi,%ecx
402fbc:	50                   	push   %eax
402fbd:	e8 4e f1 ff ff       	call   0x402110
402fc2:	8b 4d f8             	mov    -0x8(%ebp),%ecx
402fc5:	89 4e 10             	mov    %ecx,0x10(%esi)
402fc8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
402fcb:	89 7e 14             	mov    %edi,0x14(%esi)
402fce:	89 45 ec             	mov    %eax,-0x14(%ebp)
402fd1:	8d 14 09             	lea    (%ecx,%ecx,1),%edx
402fd4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402fd7:	52                   	push   %edx
402fd8:	8d 3c 09             	lea    (%ecx,%ecx,1),%edi
402fdb:	89 7d f4             	mov    %edi,-0xc(%ebp)
402fde:	8d 0c 02             	lea    (%edx,%eax,1),%ecx
402fe1:	8b 7d f8             	mov    -0x8(%ebp),%edi
402fe4:	89 4d fc             	mov    %ecx,-0x4(%ebp)
402fe7:	8d 0c 78             	lea    (%eax,%edi,2),%ecx
402fea:	8b 7d f4             	mov    -0xc(%ebp),%edi
402fed:	89 4d f8             	mov    %ecx,-0x8(%ebp)
402ff0:	83 fb 08             	cmp    $0x8,%ebx
402ff3:	72 5d                	jb     0x403052
402ff5:	8b 3e                	mov    (%esi),%edi
402ff7:	57                   	push   %edi
402ff8:	50                   	push   %eax
402ff9:	e8 22 86 06 00       	call   0x46b620
402ffe:	ff 75 f4             	push   -0xc(%ebp)
403001:	ff 75 f0             	push   -0x10(%ebp)
403004:	ff 75 fc             	push   -0x4(%ebp)
403007:	e8 14 86 06 00       	call   0x46b620
40300c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40300f:	33 c9                	xor    %ecx,%ecx
403011:	83 c4 18             	add    $0x18,%esp
403014:	66 89 08             	mov    %cx,(%eax)
403017:	8d 0c 5d 02 00 00 00 	lea    0x2(,%ebx,2),%ecx
40301e:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
403024:	72 12                	jb     0x403038
403026:	8b 57 fc             	mov    -0x4(%edi),%edx
403029:	83 c1 23             	add    $0x23,%ecx
40302c:	2b fa                	sub    %edx,%edi
40302e:	8d 47 fc             	lea    -0x4(%edi),%eax
403031:	83 f8 1f             	cmp    $0x1f,%eax
403034:	77 4f                	ja     0x403085
403036:	8b fa                	mov    %edx,%edi
403038:	51                   	push   %ecx
403039:	57                   	push   %edi
40303a:	e8 c9 69 06 00       	call   0x469a08
40303f:	8b 45 ec             	mov    -0x14(%ebp),%eax
403042:	83 c4 08             	add    $0x8,%esp
403045:	89 06                	mov    %eax,(%esi)
403047:	8b c6                	mov    %esi,%eax
403049:	5f                   	pop    %edi
40304a:	5e                   	pop    %esi
40304b:	5b                   	pop    %ebx
40304c:	8b e5                	mov    %ebp,%esp
40304e:	5d                   	pop    %ebp
40304f:	c2 08 00             	ret    $0x8
403052:	56                   	push   %esi
403053:	50                   	push   %eax
403054:	e8 c7 85 06 00       	call   0x46b620
403059:	57                   	push   %edi
40305a:	ff 75 f0             	push   -0x10(%ebp)
40305d:	ff 75 fc             	push   -0x4(%ebp)
403060:	e8 bb 85 06 00       	call   0x46b620
403065:	8b 45 f8             	mov    -0x8(%ebp),%eax
403068:	83 c4 18             	add    $0x18,%esp
40306b:	33 c9                	xor    %ecx,%ecx
40306d:	66 89 08             	mov    %cx,(%eax)
403070:	8b 45 ec             	mov    -0x14(%ebp),%eax
403073:	89 06                	mov    %eax,(%esi)
403075:	8b c6                	mov    %esi,%eax
403077:	5f                   	pop    %edi
403078:	5e                   	pop    %esi
403079:	5b                   	pop    %ebx
40307a:	8b e5                	mov    %ebp,%esp
40307c:	5d                   	pop    %ebp
40307d:	c2 08 00             	ret    $0x8
403080:	e8 5b e3 ff ff       	call   0x4013e0
403085:	e8 a7 65 07 00       	call   0x479631
40308a:	cc                   	int3
40308b:	cc                   	int3
40308c:	cc                   	int3
40308d:	cc                   	int3
40308e:	cc                   	int3
40308f:	cc                   	int3
403090:	55                   	push   %ebp
403091:	8b ec                	mov    %esp,%ebp
403093:	8b 45 0c             	mov    0xc(%ebp),%eax
403096:	8b 4d 08             	mov    0x8(%ebp),%ecx
403099:	8d 14 40             	lea    (%eax,%eax,2),%edx
40309c:	c1 e2 03             	shl    $0x3,%edx
40309f:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
4030a5:	72 14                	jb     0x4030bb
4030a7:	56                   	push   %esi
4030a8:	8b 71 fc             	mov    -0x4(%ecx),%esi
4030ab:	83 c2 23             	add    $0x23,%edx
4030ae:	2b ce                	sub    %esi,%ecx
4030b0:	8d 41 fc             	lea    -0x4(%ecx),%eax
4030b3:	83 f8 1f             	cmp    $0x1f,%eax
4030b6:	77 11                	ja     0x4030c9
4030b8:	8b ce                	mov    %esi,%ecx
4030ba:	5e                   	pop    %esi
4030bb:	52                   	push   %edx
4030bc:	51                   	push   %ecx
4030bd:	e8 46 69 06 00       	call   0x469a08
4030c2:	83 c4 08             	add    $0x8,%esp
4030c5:	5d                   	pop    %ebp
4030c6:	c2 08 00             	ret    $0x8
4030c9:	e8 63 65 07 00       	call   0x479631
4030ce:	cc                   	int3
4030cf:	cc                   	int3
4030d0:	55                   	push   %ebp
4030d1:	8b ec                	mov    %esp,%ebp
4030d3:	56                   	push   %esi
4030d4:	57                   	push   %edi
4030d5:	8b fa                	mov    %edx,%edi
4030d7:	8b f1                	mov    %ecx,%esi
4030d9:	3b f7                	cmp    %edi,%esi
4030db:	74 52                	je     0x40312f
4030dd:	0f 1f 00             	nopl   (%eax)
4030e0:	8b 4e 14             	mov    0x14(%esi),%ecx
4030e3:	83 f9 08             	cmp    $0x8,%ecx
4030e6:	72 2d                	jb     0x403115
4030e8:	8b 06                	mov    (%esi),%eax
4030ea:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4030f1:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4030f7:	72 12                	jb     0x40310b
4030f9:	8b 50 fc             	mov    -0x4(%eax),%edx
4030fc:	83 c1 23             	add    $0x23,%ecx
4030ff:	2b c2                	sub    %edx,%eax
403101:	83 c0 fc             	add    $0xfffffffc,%eax
403104:	83 f8 1f             	cmp    $0x1f,%eax
403107:	77 2a                	ja     0x403133
403109:	8b c2                	mov    %edx,%eax
40310b:	51                   	push   %ecx
40310c:	50                   	push   %eax
40310d:	e8 f6 68 06 00       	call   0x469a08
403112:	83 c4 08             	add    $0x8,%esp
403115:	33 c0                	xor    %eax,%eax
403117:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40311e:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
403125:	66 89 06             	mov    %ax,(%esi)
403128:	83 c6 18             	add    $0x18,%esi
40312b:	3b f7                	cmp    %edi,%esi
40312d:	75 b1                	jne    0x4030e0
40312f:	5f                   	pop    %edi
403130:	5e                   	pop    %esi
403131:	5d                   	pop    %ebp
403132:	c3                   	ret
403133:	e8 f9 64 07 00       	call   0x479631
403138:	cc                   	int3
403139:	cc                   	int3
40313a:	cc                   	int3
40313b:	cc                   	int3
40313c:	cc                   	int3
40313d:	cc                   	int3
40313e:	cc                   	int3
40313f:	cc                   	int3
403140:	55                   	push   %ebp
403141:	8b ec                	mov    %esp,%ebp
403143:	8b 45 08             	mov    0x8(%ebp),%eax
403146:	3d aa aa aa 0a       	cmp    $0xaaaaaaa,%eax
40314b:	77 47                	ja     0x403194
40314d:	8d 04 40             	lea    (%eax,%eax,2),%eax
403150:	c1 e0 03             	shl    $0x3,%eax
403153:	3d 00 10 00 00       	cmp    $0x1000,%eax
403158:	72 23                	jb     0x40317d
40315a:	8d 48 23             	lea    0x23(%eax),%ecx
40315d:	3b c8                	cmp    %eax,%ecx
40315f:	76 33                	jbe    0x403194
403161:	51                   	push   %ecx
403162:	e8 71 68 06 00       	call   0x4699d8
403167:	8b c8                	mov    %eax,%ecx
403169:	83 c4 04             	add    $0x4,%esp
40316c:	85 c9                	test   %ecx,%ecx
40316e:	74 29                	je     0x403199
403170:	8d 41 23             	lea    0x23(%ecx),%eax
403173:	83 e0 e0             	and    $0xffffffe0,%eax
403176:	89 48 fc             	mov    %ecx,-0x4(%eax)
403179:	5d                   	pop    %ebp
40317a:	c2 04 00             	ret    $0x4
40317d:	85 c0                	test   %eax,%eax
40317f:	74 0d                	je     0x40318e
403181:	50                   	push   %eax
403182:	e8 51 68 06 00       	call   0x4699d8
403187:	83 c4 04             	add    $0x4,%esp
40318a:	5d                   	pop    %ebp
40318b:	c2 04 00             	ret    $0x4
40318e:	33 c0                	xor    %eax,%eax
403190:	5d                   	pop    %ebp
403191:	c2 04 00             	ret    $0x4
403194:	e8 a7 e1 ff ff       	call   0x401340
403199:	e8 93 64 07 00       	call   0x479631
40319e:	cc                   	int3
40319f:	cc                   	int3
4031a0:	55                   	push   %ebp
4031a1:	8b ec                	mov    %esp,%ebp
4031a3:	83 ec 10             	sub    $0x10,%esp
4031a6:	8b 45 10             	mov    0x10(%ebp),%eax
4031a9:	53                   	push   %ebx
4031aa:	56                   	push   %esi
4031ab:	89 45 f4             	mov    %eax,-0xc(%ebp)
4031ae:	be 07 00 00 00       	mov    $0x7,%esi
4031b3:	8b 45 14             	mov    0x14(%ebp),%eax
4031b6:	57                   	push   %edi
4031b7:	8b f9                	mov    %ecx,%edi
4031b9:	89 45 f8             	mov    %eax,-0x8(%ebp)
4031bc:	03 45 1c             	add    0x1c(%ebp),%eax
4031bf:	8b df                	mov    %edi,%ebx
4031c1:	8b 4d 18             	mov    0x18(%ebp),%ecx
4031c4:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4031c7:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
4031cd:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
4031d4:	c7 47 14 00 00 00 00 	movl   $0x0,0x14(%edi)
4031db:	89 45 fc             	mov    %eax,-0x4(%ebp)
4031de:	3b c6                	cmp    %esi,%eax
4031e0:	76 30                	jbe    0x403212
4031e2:	8b f0                	mov    %eax,%esi
4031e4:	83 ce 07             	or     $0x7,%esi
4031e7:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
4031ed:	76 07                	jbe    0x4031f6
4031ef:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
4031f4:	eb 0a                	jmp    0x403200
4031f6:	b8 0a 00 00 00       	mov    $0xa,%eax
4031fb:	3b f0                	cmp    %eax,%esi
4031fd:	0f 42 f0             	cmovb  %eax,%esi
403200:	8d 46 01             	lea    0x1(%esi),%eax
403203:	8b cf                	mov    %edi,%ecx
403205:	50                   	push   %eax
403206:	e8 05 ef ff ff       	call   0x402110
40320b:	8b d8                	mov    %eax,%ebx
40320d:	8b 45 fc             	mov    -0x4(%ebp),%eax
403210:	89 1f                	mov    %ebx,(%edi)
403212:	89 77 14             	mov    %esi,0x14(%edi)
403215:	8b 75 f8             	mov    -0x8(%ebp),%esi
403218:	03 f6                	add    %esi,%esi
40321a:	89 47 10             	mov    %eax,0x10(%edi)
40321d:	56                   	push   %esi
40321e:	ff 75 f4             	push   -0xc(%ebp)
403221:	53                   	push   %ebx
403222:	e8 f9 83 06 00       	call   0x46b620
403227:	8b 45 1c             	mov    0x1c(%ebp),%eax
40322a:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
40322d:	51                   	push   %ecx
40322e:	ff 75 f0             	push   -0x10(%ebp)
403231:	8d 0c 1e             	lea    (%esi,%ebx,1),%ecx
403234:	51                   	push   %ecx
403235:	e8 e6 83 06 00       	call   0x46b620
40323a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40323d:	83 c4 18             	add    $0x18,%esp
403240:	33 c9                	xor    %ecx,%ecx
403242:	66 89 0c 43          	mov    %cx,(%ebx,%eax,2)
403246:	8b c7                	mov    %edi,%eax
403248:	5f                   	pop    %edi
403249:	5e                   	pop    %esi
40324a:	5b                   	pop    %ebx
40324b:	8b e5                	mov    %ebp,%esp
40324d:	5d                   	pop    %ebp
40324e:	c2 18 00             	ret    $0x18
403251:	cc                   	int3
403252:	cc                   	int3
403253:	cc                   	int3
403254:	cc                   	int3
403255:	cc                   	int3