402e84:	8b 45 f8             	mov    -0x8(%ebp),%eax
402e87:	83 c6 04             	add    $0x4,%esi
402e8a:	3b 70 2c             	cmp    0x2c(%eax),%esi
402e8d:	75 c1                	jne    0x402e50
402e8f:	5f                   	pop    %edi
402e90:	5e                   	pop    %esi
402e91:	5b                   	pop    %ebx
402e92:	8b e5                	mov    %ebp,%esp
402e94:	5d                   	pop    %ebp
402e95:	c2 30 00             	ret    $0x30
402e98:	e8 e2 db 01 00       	call   0x420a7f
402e9d:	cc                   	int3
402e9e:	cc                   	int3
402e9f:	cc                   	int3
402ea0:	55                   	push   %ebp
402ea1:	8b ec                	mov    %esp,%ebp
402ea3:	83 e4 f8             	and    $0xfffffff8,%esp
402ea6:	83 ec 4c             	sub    $0x4c,%esp
402ea9:	8b 45 10             	mov    0x10(%ebp),%eax
402eac:	8b 55 08             	mov    0x8(%ebp),%edx
402eaf:	89 44 24 24          	mov    %eax,0x24(%esp)
402eb3:	8b 45 14             	mov    0x14(%ebp),%eax
402eb6:	89 44 24 20          	mov    %eax,0x20(%esp)
402eba:	8b 45 18             	mov    0x18(%ebp),%eax
402ebd:	89 44 24 1c          	mov    %eax,0x1c(%esp)
402ec1:	8b 45 1c             	mov    0x1c(%ebp),%eax
402ec4:	89 44 24 18          	mov    %eax,0x18(%esp)
402ec8:	8b 45 20             	mov    0x20(%ebp),%eax
402ecb:	89 44 24 14          	mov    %eax,0x14(%esp)
402ecf:	8b 45 24             	mov    0x24(%ebp),%eax
402ed2:	89 44 24 10          	mov    %eax,0x10(%esp)
402ed6:	8b 45 28             	mov    0x28(%ebp),%eax
402ed9:	89 44 24 0c          	mov    %eax,0xc(%esp)
402edd:	8b 45 2c             	mov    0x2c(%ebp),%eax
402ee0:	89 44 24 08          	mov    %eax,0x8(%esp)
402ee4:	53                   	push   %ebx
402ee5:	8b d9                	mov    %ecx,%ebx
402ee7:	89 5c 24 04          	mov    %ebx,0x4(%esp)
402eeb:	56                   	push   %esi
402eec:	57                   	push   %edi
402eed:	85 d2                	test   %edx,%edx
402eef:	0f 84 1a 01 00 00    	je     0x40300f
402ef5:	8b ca                	mov    %edx,%ecx
402ef7:	c7 44 24 34 00 00 00 	movl   $0x0,0x34(%esp)
402efe:	00
402eff:	c7 44 24 44 00 00 00 	movl   $0x0,0x44(%esp)
402f06:	00
402f07:	c7 44 24 48 00 00 00 	movl   $0x0,0x48(%esp)
402f0e:	00
402f0f:	8d 71 02             	lea    0x2(%ecx),%esi
402f12:	66 8b 01             	mov    (%ecx),%ax
402f15:	83 c1 02             	add    $0x2,%ecx
402f18:	66 85 c0             	test   %ax,%ax
402f1b:	75 f5                	jne    0x402f12
402f1d:	2b ce                	sub    %esi,%ecx
402f1f:	d1 f9                	sar    $1,%ecx
402f21:	51                   	push   %ecx
402f22:	52                   	push   %edx
402f23:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
402f27:	e8 e4 f5 ff ff       	call   0x402510
402f2c:	8d 44 24 34          	lea    0x34(%esp),%eax
402f30:	8b cb                	mov    %ebx,%ecx
402f32:	50                   	push   %eax
402f33:	8d 44 24 50          	lea    0x50(%esp),%eax
402f37:	50                   	push   %eax
402f38:	e8 13 0b 00 00       	call   0x403a50
402f3d:	8b 5c 24 54          	mov    0x54(%esp),%ebx
402f41:	8b 7c 24 48          	mov    0x48(%esp),%edi
402f45:	8b 74 24 34          	mov    0x34(%esp),%esi
402f49:	89 5c 24 10          	mov    %ebx,0x10(%esp)
402f4d:	80 7b 0d 00          	cmpb   $0x0,0xd(%ebx)
402f51:	75 2a                	jne    0x402f7d
402f53:	83 7b 24 08          	cmpl   $0x8,0x24(%ebx)
402f57:	8d 53 10             	lea    0x10(%ebx),%edx
402f5a:	72 03                	jb     0x402f5f
402f5c:	8b 53 10             	mov    0x10(%ebx),%edx
402f5f:	ff 73 20             	push   0x20(%ebx)
402f62:	83 ff 08             	cmp    $0x8,%edi
402f65:	8d 4c 24 38          	lea    0x38(%esp),%ecx
402f69:	52                   	push   %edx
402f6a:	8b 54 24 4c          	mov    0x4c(%esp),%edx
402f6e:	0f 43 ce             	cmovae %esi,%ecx
402f71:	e8 2a f5 ff ff       	call   0x4024a0
402f76:	83 c4 08             	add    $0x8,%esp
402f79:	85 c0                	test   %eax,%eax
402f7b:	79 0a                	jns    0x402f87
402f7d:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
402f81:	8b 1b                	mov    (%ebx),%ebx
402f83:	89 5c 24 10          	mov    %ebx,0x10(%esp)
402f87:	83 ff 08             	cmp    $0x8,%edi
402f8a:	72 2b                	jb     0x402fb7
402f8c:	8d 0c 7d 02 00 00 00 	lea    0x2(,%edi,2),%ecx
402f93:	8b c6                	mov    %esi,%eax
402f95:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
402f9b:	72 10                	jb     0x402fad
402f9d:	8b 70 fc             	mov    -0x4(%eax),%esi
402fa0:	83 c1 23             	add    $0x23,%ecx
402fa3:	2b c6                	sub    %esi,%eax
402fa5:	83 c0 fc             	add    $0xfffffffc,%eax
402fa8:	83 f8 1f             	cmp    $0x1f,%eax
402fab:	77 6b                	ja     0x403018
402fad:	51                   	push   %ecx
402fae:	56                   	push   %esi
402faf:	e8 5a 89 01 00       	call   0x41b90e
402fb4:	83 c4 08             	add    $0x8,%esp
402fb7:	8b 44 24 0c          	mov    0xc(%esp),%eax
402fbb:	3b 18                	cmp    (%eax),%ebx
402fbd:	74 50                	je     0x40300f
402fbf:	8b 73 28             	mov    0x28(%ebx),%esi
402fc2:	3b 73 2c             	cmp    0x2c(%ebx),%esi
402fc5:	74 48                	je     0x40300f
402fc7:	8b 1e                	mov    (%esi),%ebx
402fc9:	6a 01                	push   $0x1
402fcb:	6a 00                	push   $0x0
402fcd:	6a 00                	push   $0x0
402fcf:	ff 74 24 20          	push   0x20(%esp)
402fd3:	8b 3b                	mov    (%ebx),%edi
402fd5:	ff 74 24 28          	push   0x28(%esp)
402fd9:	ff 74 24 30          	push   0x30(%esp)
402fdd:	8b 7f 10             	mov    0x10(%edi),%edi
402fe0:	8b cf                	mov    %edi,%ecx
402fe2:	ff 74 24 38          	push   0x38(%esp)
402fe6:	ff 74 24 40          	push   0x40(%esp)
402fea:	ff 74 24 48          	push   0x48(%esp)
402fee:	ff 74 24 50          	push   0x50(%esp)
402ff2:	ff 74 24 58          	push   0x58(%esp)
402ff6:	ff 75 0c             	push   0xc(%ebp)
402ff9:	ff 15 3c f2 43 00    	call   *0x43f23c
402fff:	8b cb                	mov    %ebx,%ecx
403001:	ff d7                	call   *%edi
403003:	8b 44 24 10          	mov    0x10(%esp),%eax
403007:	83 c6 04             	add    $0x4,%esi
40300a:	3b 70 2c             	cmp    0x2c(%eax),%esi
40300d:	75 b8                	jne    0x402fc7
40300f:	5f                   	pop    %edi
403010:	5e                   	pop    %esi
403011:	5b                   	pop    %ebx
403012:	8b e5                	mov    %ebp,%esp
403014:	5d                   	pop    %ebp
403015:	c2 30 00             	ret    $0x30
403018:	e8 62 da 01 00       	call   0x420a7f
40301d:	cc                   	int3
40301e:	cc                   	int3
40301f:	cc                   	int3
403020:	56                   	push   %esi
403021:	8b f1                	mov    %ecx,%esi
403023:	8b 06                	mov    (%esi),%eax
403025:	85 c0                	test   %eax,%eax
403027:	74 40                	je     0x403069
403029:	8b 4e 08             	mov    0x8(%esi),%ecx
40302c:	2b c8                	sub    %eax,%ecx
40302e:	83 e1 fc             	and    $0xfffffffc,%ecx
403031:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
403037:	72 12                	jb     0x40304b
403039:	8b 50 fc             	mov    -0x4(%eax),%edx
40303c:	83 c1 23             	add    $0x23,%ecx
40303f:	2b c2                	sub    %edx,%eax
403041:	83 c0 fc             	add    $0xfffffffc,%eax
403044:	83 f8 1f             	cmp    $0x1f,%eax
403047:	77 22                	ja     0x40306b
403049:	8b c2                	mov    %edx,%eax
40304b:	51                   	push   %ecx
40304c:	50                   	push   %eax
40304d:	e8 bc 88 01 00       	call   0x41b90e
403052:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
403058:	83 c4 08             	add    $0x8,%esp
40305b:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
403062:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
403069:	5e                   	pop    %esi
40306a:	c3                   	ret
40306b:	e8 0f da 01 00       	call   0x420a7f
403070:	cc                   	int3
403071:	cc                   	int3
403072:	cc                   	int3
403073:	cc                   	int3
403074:	cc                   	int3
403075:	cc                   	int3
403076:	cc                   	int3
403077:	cc                   	int3
403078:	cc                   	int3
403079:	cc                   	int3
40307a:	cc                   	int3
40307b:	cc                   	int3
40307c:	cc                   	int3
40307d:	cc                   	int3
40307e:	cc                   	int3
40307f:	cc                   	int3
403080:	53                   	push   %ebx
403081:	8b d9                	mov    %ecx,%ebx
403083:	56                   	push   %esi
403084:	8b 33                	mov    (%ebx),%esi
403086:	8b 76 04             	mov    0x4(%esi),%esi
403089:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
40308d:	75 2a                	jne    0x4030b9
40308f:	57                   	push   %edi
403090:	ff 76 08             	push   0x8(%esi)
403093:	8b cb                	mov    %ebx,%ecx
403095:	53                   	push   %ebx
403096:	e8 45 0a 00 00       	call   0x403ae0
40309b:	8b fe                	mov    %esi,%edi
40309d:	8b 36                	mov    (%esi),%esi
40309f:	8d 4f 10             	lea    0x10(%edi),%ecx
4030a2:	e8 89 0a 00 00       	call   0x403b30
4030a7:	6a 34                	push   $0x34
4030a9:	57                   	push   %edi
4030aa:	e8 5f 88 01 00       	call   0x41b90e
4030af:	83 c4 08             	add    $0x8,%esp
4030b2:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
4030b6:	74 d8                	je     0x403090
4030b8:	5f                   	pop    %edi
4030b9:	6a 34                	push   $0x34
4030bb:	ff 33                	push   (%ebx)
4030bd:	e8 4c 88 01 00       	call   0x41b90e
4030c2:	83 c4 08             	add    $0x8,%esp
4030c5:	5e                   	pop    %esi
4030c6:	5b                   	pop    %ebx
4030c7:	c3                   	ret
4030c8:	cc                   	int3
4030c9:	cc                   	int3
4030ca:	cc                   	int3
4030cb:	cc                   	int3
4030cc:	cc                   	int3
4030cd:	cc                   	int3
4030ce:	cc                   	int3
4030cf:	cc                   	int3
4030d0:	55                   	push   %ebp
4030d1:	8b ec                	mov    %esp,%ebp
4030d3:	51                   	push   %ecx
4030d4:	8b 55 08             	mov    0x8(%ebp),%edx
4030d7:	53                   	push   %ebx
4030d8:	8b d9                	mov    %ecx,%ebx
4030da:	57                   	push   %edi
4030db:	8b 7d 10             	mov    0x10(%ebp),%edi
4030de:	8b 03                	mov    (%ebx),%eax
4030e0:	ff 43 04             	incl   0x4(%ebx)
4030e3:	89 45 fc             	mov    %eax,-0x4(%ebp)
4030e6:	89 57 04             	mov    %edx,0x4(%edi)
4030e9:	3b d0                	cmp    %eax,%edx
4030eb:	75 16                	jne    0x403103
4030ed:	89 38                	mov    %edi,(%eax)
4030ef:	89 78 04             	mov    %edi,0x4(%eax)
4030f2:	89 78 08             	mov    %edi,0x8(%eax)
4030f5:	8b c7                	mov    %edi,%eax
4030f7:	c6 47 0c 01          	movb   $0x1,0xc(%edi)
4030fb:	5f                   	pop    %edi
4030fc:	5b                   	pop    %ebx
4030fd:	8b e5                	mov    %ebp,%esp
4030ff:	5d                   	pop    %ebp
403100:	c2 0c 00             	ret    $0xc
403103:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
403107:	75 0d                	jne    0x403116
403109:	89 7a 08             	mov    %edi,0x8(%edx)
40310c:	3b 50 08             	cmp    0x8(%eax),%edx
40310f:	75 0d                	jne    0x40311e
403111:	89 78 08             	mov    %edi,0x8(%eax)
403114:	eb 08                	jmp    0x40311e
403116:	89 3a                	mov    %edi,(%edx)
403118:	3b 10                	cmp    (%eax),%edx
40311a:	75 02                	jne    0x40311e
40311c:	89 38                	mov    %edi,(%eax)
40311e:	8b 4f 04             	mov    0x4(%edi),%ecx
403121:	8b c7                	mov    %edi,%eax
403123:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
403127:	0f 85 7d 01 00 00    	jne    0x4032aa
40312d:	56                   	push   %esi
40312e:	66 90                	xchg   %ax,%ax
403130:	8b 50 04             	mov    0x4(%eax),%edx
403133:	8b 72 04             	mov    0x4(%edx),%esi
403136:	8b 0e                	mov    (%esi),%ecx
403138:	3b d1                	cmp    %ecx,%edx
40313a:	0f 85 aa 00 00 00    	jne    0x4031ea
403140:	8b 4e 08             	mov    0x8(%esi),%ecx
403143:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
403147:	0f 84 a3 00 00 00    	je     0x4031f0
40314d:	8b 72 08             	mov    0x8(%edx),%esi
403150:	3b c6                	cmp    %esi,%eax
403152:	75 37                	jne    0x40318b
403154:	8b 0e                	mov    (%esi),%ecx
403156:	8b c2                	mov    %edx,%eax
403158:	89 4a 08             	mov    %ecx,0x8(%edx)
40315b:	8b 0e                	mov    (%esi),%ecx
40315d:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
403161:	75 03                	jne    0x403166
403163:	89 41 04             	mov    %eax,0x4(%ecx)
403166:	8b 4a 04             	mov    0x4(%edx),%ecx
403169:	89 4e 04             	mov    %ecx,0x4(%esi)
40316c:	8b 0b                	mov    (%ebx),%ecx
40316e:	3b 41 04             	cmp    0x4(%ecx),%eax
403171:	75 05                	jne    0x403178
403173:	89 71 04             	mov    %esi,0x4(%ecx)
403176:	eb 0e                	jmp    0x403186
403178:	8b 4a 04             	mov    0x4(%edx),%ecx
40317b:	3b 01                	cmp    (%ecx),%eax
40317d:	75 04                	jne    0x403183
40317f:	89 31                	mov    %esi,(%ecx)
403181:	eb 03                	jmp    0x403186
403183:	89 71 08             	mov    %esi,0x8(%ecx)
403186:	89 06                	mov    %eax,(%esi)
403188:	89 72 04             	mov    %esi,0x4(%edx)
40318b:	8b 48 04             	mov    0x4(%eax),%ecx
40318e:	c6 41 0c 01          	movb   $0x1,0xc(%ecx)
403192:	8b 48 04             	mov    0x4(%eax),%ecx
403195:	8b 49 04             	mov    0x4(%ecx),%ecx
403198:	c6 41 0c 00          	movb   $0x0,0xc(%ecx)
40319c:	8b 48 04             	mov    0x4(%eax),%ecx
40319f:	8b 51 04             	mov    0x4(%ecx),%edx
4031a2:	8b 32                	mov    (%edx),%esi
4031a4:	8b 4e 08             	mov    0x8(%esi),%ecx
4031a7:	89 0a                	mov    %ecx,(%edx)
4031a9:	8b 4e 08             	mov    0x8(%esi),%ecx
4031ac:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
4031b0:	75 03                	jne    0x4031b5
4031b2:	89 51 04             	mov    %edx,0x4(%ecx)
4031b5:	8b 4a 04             	mov    0x4(%edx),%ecx
4031b8:	89 4e 04             	mov    %ecx,0x4(%esi)
4031bb:	8b 0b                	mov    (%ebx),%ecx
4031bd:	3b 51 04             	cmp    0x4(%ecx),%edx
4031c0:	75 0b                	jne    0x4031cd
4031c2:	89 71 04             	mov    %esi,0x4(%ecx)
4031c5:	89 56 08             	mov    %edx,0x8(%esi)
4031c8:	e9 cc 00 00 00       	jmp    0x403299
4031cd:	8b 4a 04             	mov    0x4(%edx),%ecx
4031d0:	3b 51 08             	cmp    0x8(%ecx),%edx
4031d3:	75 0b                	jne    0x4031e0
4031d5:	89 71 08             	mov    %esi,0x8(%ecx)
4031d8:	89 56 08             	mov    %edx,0x8(%esi)
4031db:	e9 b9 00 00 00       	jmp    0x403299
4031e0:	89 31                	mov    %esi,(%ecx)
4031e2:	89 56 08             	mov    %edx,0x8(%esi)
4031e5:	e9 af 00 00 00       	jmp    0x403299
4031ea:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
4031ee:	75 1d                	jne    0x40320d
4031f0:	c6 42 0c 01          	movb   $0x1,0xc(%edx)
4031f4:	c6 41 0c 01          	movb   $0x1,0xc(%ecx)
4031f8:	8b 48 04             	mov    0x4(%eax),%ecx
4031fb:	8b 49 04             	mov    0x4(%ecx),%ecx
4031fe:	c6 41 0c 00          	movb   $0x0,0xc(%ecx)
403202:	8b 48 04             	mov    0x4(%eax),%ecx
403205:	8b 41 04             	mov    0x4(%ecx),%eax
403208:	e9 8f 00 00 00       	jmp    0x40329c
40320d:	8b 32                	mov    (%edx),%esi
40320f:	3b c6                	cmp    %esi,%eax
403211:	75 3a                	jne    0x40324d
403213:	8b 4e 08             	mov    0x8(%esi),%ecx
403216:	8b c2                	mov    %edx,%eax
403218:	89 08                	mov    %ecx,(%eax)
40321a:	8b 4e 08             	mov    0x8(%esi),%ecx
40321d:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
403221:	75 03                	jne    0x403226
403223:	89 41 04             	mov    %eax,0x4(%ecx)