402f2e:	55                   	push   %ebp
402f2f:	8b ec                	mov    %esp,%ebp
402f31:	51                   	push   %ecx
402f32:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402f36:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
402f3a:	57                   	push   %edi
402f3b:	8b f9                	mov    %ecx,%edi
402f3d:	7e 5b                	jle    0x402f9a
402f3f:	53                   	push   %ebx
402f40:	8b 5d 08             	mov    0x8(%ebp),%ebx
402f43:	56                   	push   %esi
402f44:	8b 47 1c             	mov    0x1c(%edi),%eax
402f47:	8b 00                	mov    (%eax),%eax
402f49:	85 c0                	test   %eax,%eax
402f4b:	74 30                	je     0x402f7d
402f4d:	8b 4f 2c             	mov    0x2c(%edi),%ecx
402f50:	8b 31                	mov    (%ecx),%esi
402f52:	85 f6                	test   %esi,%esi
402f54:	7e 27                	jle    0x402f7d
402f56:	39 75 0c             	cmp    %esi,0xc(%ebp)
402f59:	7d 03                	jge    0x402f5e
402f5b:	8b 75 0c             	mov    0xc(%ebp),%esi
402f5e:	56                   	push   %esi
402f5f:	50                   	push   %eax
402f60:	53                   	push   %ebx
402f61:	e8 fa 2d 00 00       	call   0x405d60
402f66:	8b 47 2c             	mov    0x2c(%edi),%eax
402f69:	01 75 fc             	add    %esi,-0x4(%ebp)
402f6c:	29 75 0c             	sub    %esi,0xc(%ebp)
402f6f:	83 c4 0c             	add    $0xc,%esp
402f72:	29 30                	sub    %esi,(%eax)
402f74:	8b 47 1c             	mov    0x1c(%edi),%eax
402f77:	03 de                	add    %esi,%ebx
402f79:	01 30                	add    %esi,(%eax)
402f7b:	eb 15                	jmp    0x402f92
402f7d:	8b 07                	mov    (%edi),%eax
402f7f:	8b cf                	mov    %edi,%ecx
402f81:	ff 50 14             	call   *0x14(%eax)
402f84:	83 f8 ff             	cmp    $0xffffffff,%eax
402f87:	74 0f                	je     0x402f98
402f89:	88 03                	mov    %al,(%ebx)
402f8b:	43                   	inc    %ebx
402f8c:	ff 45 fc             	incl   -0x4(%ebp)
402f8f:	ff 4d 0c             	decl   0xc(%ebp)
402f92:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
402f96:	7f ac                	jg     0x402f44
402f98:	5e                   	pop    %esi
402f99:	5b                   	pop    %ebx
402f9a:	8b 45 fc             	mov    -0x4(%ebp),%eax
402f9d:	5f                   	pop    %edi
402f9e:	c9                   	leave
402f9f:	c2 08 00             	ret    $0x8
402fa2:	55                   	push   %ebp
402fa3:	8b ec                	mov    %esp,%ebp
402fa5:	51                   	push   %ecx
402fa6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402faa:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
402fae:	57                   	push   %edi
402faf:	8b f9                	mov    %ecx,%edi
402fb1:	7e 5d                	jle    0x403010
402fb3:	53                   	push   %ebx
402fb4:	8b 5d 08             	mov    0x8(%ebp),%ebx
402fb7:	56                   	push   %esi
402fb8:	8b 47 20             	mov    0x20(%edi),%eax
402fbb:	8b 00                	mov    (%eax),%eax
402fbd:	85 c0                	test   %eax,%eax
402fbf:	74 30                	je     0x402ff1
402fc1:	8b 4f 30             	mov    0x30(%edi),%ecx
402fc4:	8b 31                	mov    (%ecx),%esi
402fc6:	85 f6                	test   %esi,%esi
402fc8:	7e 27                	jle    0x402ff1
402fca:	39 75 0c             	cmp    %esi,0xc(%ebp)
402fcd:	7d 03                	jge    0x402fd2
402fcf:	8b 75 0c             	mov    0xc(%ebp),%esi
402fd2:	56                   	push   %esi
402fd3:	53                   	push   %ebx
402fd4:	50                   	push   %eax
402fd5:	e8 86 2d 00 00       	call   0x405d60
402fda:	8b 47 30             	mov    0x30(%edi),%eax
402fdd:	01 75 fc             	add    %esi,-0x4(%ebp)
402fe0:	29 75 0c             	sub    %esi,0xc(%ebp)
402fe3:	83 c4 0c             	add    $0xc,%esp
402fe6:	29 30                	sub    %esi,(%eax)
402fe8:	8b 47 20             	mov    0x20(%edi),%eax
402feb:	03 de                	add    %esi,%ebx
402fed:	01 30                	add    %esi,(%eax)
402fef:	eb 17                	jmp    0x403008
402ff1:	0f b6 0b             	movzbl (%ebx),%ecx
402ff4:	8b 07                	mov    (%edi),%eax
402ff6:	51                   	push   %ecx
402ff7:	8b cf                	mov    %edi,%ecx
402ff9:	ff 50 04             	call   *0x4(%eax)
402ffc:	83 f8 ff             	cmp    $0xffffffff,%eax
402fff:	74 0d                	je     0x40300e
403001:	43                   	inc    %ebx
403002:	ff 45 fc             	incl   -0x4(%ebp)
403005:	ff 4d 0c             	decl   0xc(%ebp)
403008:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40300c:	7f aa                	jg     0x402fb8
40300e:	5e                   	pop    %esi
40300f:	5b                   	pop    %ebx
403010:	8b 45 fc             	mov    -0x4(%ebp),%eax
403013:	5f                   	pop    %edi
403014:	c9                   	leave
403015:	c2 08 00             	ret    $0x8
403018:	55                   	push   %ebp
403019:	8b ec                	mov    %esp,%ebp
40301b:	83 ec 18             	sub    $0x18,%esp
40301e:	56                   	push   %esi
40301f:	57                   	push   %edi
403020:	6a ff                	push   $0xffffffff
403022:	8d 4d e8             	lea    -0x18(%ebp),%ecx
403025:	e8 30 06 00 00       	call   0x40365a
40302a:	8b f0                	mov    %eax,%esi
40302c:	8b 45 08             	mov    0x8(%ebp),%eax
40302f:	6a 06                	push   $0x6
403031:	8b f8                	mov    %eax,%edi
403033:	59                   	pop    %ecx
403034:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
403036:	5f                   	pop    %edi
403037:	5e                   	pop    %esi
403038:	c9                   	leave
403039:	c2 10 00             	ret    $0x10
40303c:	8b c1                	mov    %ecx,%eax
40303e:	c2 08 00             	ret    $0x8
403041:	c2 04 00             	ret    $0x4
403044:	8b c1                	mov    %ecx,%eax
403046:	c7 00 fc d1 40 00    	movl   $0x40d1fc,(%eax)
40304c:	c2 04 00             	ret    $0x4
40304f:	b8 6b c5 40 00       	mov    $0x40c56b,%eax
403054:	e8 e7 2c 00 00       	call   0x405d40
403059:	51                   	push   %ecx
40305a:	56                   	push   %esi
40305b:	8b f1                	mov    %ecx,%esi
40305d:	57                   	push   %edi
40305e:	89 75 f0             	mov    %esi,-0x10(%ebp)
403061:	c7 06 fc d1 40 00    	movl   $0x40d1fc,(%esi)
403067:	80 7e 48 00          	cmpb   $0x0,0x48(%esi)
40306b:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
403072:	74 05                	je     0x403079
403074:	e8 4b 06 00 00       	call   0x4036c4
403079:	8b 7e 44             	mov    0x44(%esi),%edi
40307c:	85 ff                	test   %edi,%edi
40307e:	74 10                	je     0x403090
403080:	6a 01                	push   $0x1
403082:	8b cf                	mov    %edi,%ecx
403084:	e8 55 05 00 00       	call   0x4035de
403089:	57                   	push   %edi
40308a:	e8 f2 1e 00 00       	call   0x404f81
40308f:	59                   	pop    %ecx
403090:	8d 4e 4c             	lea    0x4c(%esi),%ecx
403093:	e8 10 fe ff ff       	call   0x402ea8
403098:	8d 4e 34             	lea    0x34(%esi),%ecx
40309b:	c7 06 34 d2 40 00    	movl   $0x40d234,(%esi)
4030a1:	e8 02 fe ff ff       	call   0x402ea8
4030a6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4030a9:	5f                   	pop    %edi
4030aa:	5e                   	pop    %esi
4030ab:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4030b2:	c9                   	leave
4030b3:	c3                   	ret
4030b4:	55                   	push   %ebp
4030b5:	8b ec                	mov    %esp,%ebp
4030b7:	83 ec 10             	sub    $0x10,%esp
4030ba:	53                   	push   %ebx
4030bb:	8b 5d 08             	mov    0x8(%ebp),%ebx
4030be:	56                   	push   %esi
4030bf:	83 fb ff             	cmp    $0xffffffff,%ebx
4030c2:	57                   	push   %edi
4030c3:	8b f1                	mov    %ecx,%esi
4030c5:	75 07                	jne    0x4030ce
4030c7:	33 c0                	xor    %eax,%eax
4030c9:	e9 15 01 00 00       	jmp    0x4031e3
4030ce:	8b 46 20             	mov    0x20(%esi),%eax
4030d1:	33 ff                	xor    %edi,%edi
4030d3:	8b 00                	mov    (%eax),%eax
4030d5:	3b c7                	cmp    %edi,%eax
4030d7:	74 16                	je     0x4030ef
4030d9:	8b 4e 30             	mov    0x30(%esi),%ecx
4030dc:	8b 09                	mov    (%ecx),%ecx
4030de:	03 c8                	add    %eax,%ecx
4030e0:	3b c1                	cmp    %ecx,%eax
4030e2:	73 0b                	jae    0x4030ef
4030e4:	8b ce                	mov    %esi,%ecx
4030e6:	e8 c9 05 00 00       	call   0x4036b4
4030eb:	88 18                	mov    %bl,(%eax)
4030ed:	eb 25                	jmp    0x403114
4030ef:	8b 46 50             	mov    0x50(%esi),%eax
4030f2:	3b c7                	cmp    %edi,%eax
4030f4:	0f 84 e6 00 00 00    	je     0x4031e0
4030fa:	39 7e 38             	cmp    %edi,0x38(%esi)
4030fd:	75 1c                	jne    0x40311b
4030ff:	50                   	push   %eax
403100:	0f be c3             	movsbl %bl,%eax
403103:	50                   	push   %eax
403104:	e8 c5 30 00 00       	call   0x4061ce
403109:	59                   	pop    %ecx
40310a:	83 f8 ff             	cmp    $0xffffffff,%eax
40310d:	59                   	pop    %ecx
40310e:	0f 84 cc 00 00 00    	je     0x4031e0
403114:	8b c3                	mov    %ebx,%eax
403116:	e9 c8 00 00 00       	jmp    0x4031e3
40311b:	ff 35 68 d2 40 00    	push   0x40d268
403121:	8b 4e 44             	mov    0x44(%esi),%ecx
403124:	88 5d ff             	mov    %bl,-0x1(%ebp)
403127:	57                   	push   %edi
403128:	e8 4a 04 00 00       	call   0x403577
40312d:	8b 4e 44             	mov    0x44(%esi),%ecx
403130:	57                   	push   %edi
403131:	6a 08                	push   $0x8
403133:	e8 e6 03 00 00       	call   0x40351e
403138:	8b 7e 44             	mov    0x44(%esi),%edi
40313b:	8b cf                	mov    %edi,%ecx
40313d:	e8 21 06 00 00       	call   0x403763
403142:	8b 5e 44             	mov    0x44(%esi),%ebx
403145:	8b 47 04             	mov    0x4(%edi),%eax
403148:	8b cb                	mov    %ebx,%ecx
40314a:	89 45 f8             	mov    %eax,-0x8(%ebp)
40314d:	e8 11 06 00 00       	call   0x403763
403152:	8b 45 f8             	mov    -0x8(%ebp),%eax
403155:	8b 4f 08             	mov    0x8(%edi),%ecx
403158:	8b 5b 04             	mov    0x4(%ebx),%ebx
40315b:	03 c8                	add    %eax,%ecx
40315d:	f7 d8                	neg    %eax
40315f:	1b c0                	sbb    %eax,%eax
403161:	8d 7d f0             	lea    -0x10(%ebp),%edi
403164:	23 c1                	and    %ecx,%eax
403166:	57                   	push   %edi
403167:	8b 4e 38             	mov    0x38(%esi),%ecx
40316a:	50                   	push   %eax
40316b:	8d 45 f4             	lea    -0xc(%ebp),%eax
40316e:	53                   	push   %ebx
40316f:	8b 11                	mov    (%ecx),%edx
403171:	50                   	push   %eax
403172:	8d 45 00             	lea    0x0(%ebp),%eax
403175:	50                   	push   %eax
403176:	8d 45 ff             	lea    -0x1(%ebp),%eax
403179:	50                   	push   %eax
40317a:	8d 46 40             	lea    0x40(%esi),%eax
40317d:	50                   	push   %eax
40317e:	ff 52 14             	call   *0x14(%edx)
403181:	83 e8 00             	sub    $0x0,%eax
403184:	74 25                	je     0x4031ab
403186:	48                   	dec    %eax
403187:	74 1a                	je     0x4031a3
403189:	48                   	dec    %eax
40318a:	48                   	dec    %eax
40318b:	75 53                	jne    0x4031e0
40318d:	0f be 45 ff          	movsbl -0x1(%ebp),%eax
403191:	ff 76 50             	push   0x50(%esi)
403194:	50                   	push   %eax
403195:	e8 34 30 00 00       	call   0x4061ce
40319a:	59                   	pop    %ecx
40319b:	83 f8 ff             	cmp    $0xffffffff,%eax
40319e:	59                   	pop    %ecx
40319f:	74 3f                	je     0x4031e0
4031a1:	eb 38                	jmp    0x4031db
4031a3:	8d 45 ff             	lea    -0x1(%ebp),%eax
4031a6:	39 45 f4             	cmp    %eax,-0xc(%ebp)
4031a9:	74 35                	je     0x4031e0
4031ab:	8b 5e 44             	mov    0x44(%esi),%ebx
4031ae:	8b cb                	mov    %ebx,%ecx
4031b0:	e8 ae 05 00 00       	call   0x403763
4031b5:	8b 7d f0             	mov    -0x10(%ebp),%edi
4031b8:	2b 7b 04             	sub    0x4(%ebx),%edi
4031bb:	8b 5e 44             	mov    0x44(%esi),%ebx
4031be:	8b cb                	mov    %ebx,%ecx
4031c0:	e8 9e 05 00 00       	call   0x403763
4031c5:	ff 76 50             	push   0x50(%esi)
4031c8:	8b 5b 04             	mov    0x4(%ebx),%ebx
4031cb:	6a 01                	push   $0x1
4031cd:	57                   	push   %edi
4031ce:	53                   	push   %ebx
4031cf:	e8 c1 2e 00 00       	call   0x406095
4031d4:	83 c4 10             	add    $0x10,%esp
4031d7:	3b c7                	cmp    %edi,%eax
4031d9:	75 05                	jne    0x4031e0
4031db:	8b 45 08             	mov    0x8(%ebp),%eax
4031de:	eb 03                	jmp    0x4031e3
4031e0:	83 c8 ff             	or     $0xffffffff,%eax
4031e3:	5f                   	pop    %edi
4031e4:	5e                   	pop    %esi
4031e5:	5b                   	pop    %ebx
4031e6:	c9                   	leave
4031e7:	c2 04 00             	ret    $0x4
4031ea:	53                   	push   %ebx
4031eb:	56                   	push   %esi
4031ec:	8b f1                	mov    %ecx,%esi
4031ee:	57                   	push   %edi
4031ef:	8b 46 1c             	mov    0x1c(%esi),%eax
4031f2:	8b 00                	mov    (%eax),%eax
4031f4:	85 c0                	test   %eax,%eax
4031f6:	74 2a                	je     0x403222
4031f8:	8b 4e 0c             	mov    0xc(%esi),%ecx
4031fb:	39 01                	cmp    %eax,(%ecx)
4031fd:	73 23                	jae    0x403222
4031ff:	8b 5c 24 10          	mov    0x10(%esp),%ebx
403203:	83 fb ff             	cmp    $0xffffffff,%ebx
403206:	74 08                	je     0x403210
403208:	0f b6 40 ff          	movzbl -0x1(%eax),%eax
40320c:	3b c3                	cmp    %ebx,%eax
40320e:	75 16                	jne    0x403226
403210:	8b ce                	mov    %esi,%ecx
403212:	e8 7d 04 00 00       	call   0x403694
403217:	8b c3                	mov    %ebx,%eax
403219:	40                   	inc    %eax
40321a:	f7 d8                	neg    %eax
40321c:	1b c0                	sbb    %eax,%eax
40321e:	23 c3                	and    %ebx,%eax
403220:	eb 6f                	jmp    0x403291
403222:	8b 5c 24 10          	mov    0x10(%esp),%ebx
403226:	8b 46 50             	mov    0x50(%esi),%eax
403229:	85 c0                	test   %eax,%eax
40322b:	74 61                	je     0x40328e
40322d:	83 fb ff             	cmp    $0xffffffff,%ebx
403230:	74 5c                	je     0x40328e
403232:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
403236:	75 15                	jne    0x40324d
403238:	50                   	push   %eax
403239:	0f b6 c3             	movzbl %bl,%eax
40323c:	50                   	push   %eax
40323d:	e8 c7 2f 00 00       	call   0x406209
403242:	59                   	pop    %ecx
403243:	83 f8 ff             	cmp    $0xffffffff,%eax
403246:	59                   	pop    %ecx
403247:	74 45                	je     0x40328e
403249:	8b c3                	mov    %ebx,%eax
40324b:	eb 44                	jmp    0x403291
40324d:	8b 7e 44             	mov    0x44(%esi),%edi
403250:	8b 5f 08             	mov    0x8(%edi),%ebx
403253:	85 db                	test   %ebx,%ebx
403255:	76 37                	jbe    0x40328e
403257:	8b cf                	mov    %edi,%ecx
403259:	e8 05 05 00 00       	call   0x403763
40325e:	8b 7f 04             	mov    0x4(%edi),%edi
403261:	53                   	push   %ebx
403262:	ff 76 50             	push   0x50(%esi)
403265:	57                   	push   %edi
403266:	e8 0d 07 00 00       	call   0x403978
40326b:	83 c4 0c             	add    $0xc,%esp
40326e:	84 c0                	test   %al,%al
403270:	74 1c                	je     0x40328e
403272:	ff 35 68 d2 40 00    	push   0x40d268
403278:	8b 4e 44             	mov    0x44(%esi),%ecx
40327b:	6a 00                	push   $0x0
40327d:	e8 f5 02 00 00       	call   0x403577
403282:	8b 46 3c             	mov    0x3c(%esi),%eax
403285:	89 46 40             	mov    %eax,0x40(%esi)
403288:	8b 44 24 10          	mov    0x10(%esp),%eax
40328c:	eb 03                	jmp    0x403291