402efc:	8b 4d 18             	mov    0x18(%ebp),%ecx
402eff:	8b 55 08             	mov    0x8(%ebp),%edx
402f02:	83 c4 0c             	add    $0xc,%esp
402f05:	39 7e 14             	cmp    %edi,0x14(%esi)
402f08:	72 07                	jb     0x402f11
402f0a:	8b 06                	mov    (%esi),%eax
402f0c:	89 45 10             	mov    %eax,0x10(%ebp)
402f0f:	eb 03                	jmp    0x402f14
402f11:	89 75 10             	mov    %esi,0x10(%ebp)
402f14:	39 7e 14             	cmp    %edi,0x14(%esi)
402f17:	72 07                	jb     0x402f20
402f19:	8b 06                	mov    (%esi),%eax
402f1b:	89 45 f8             	mov    %eax,-0x8(%ebp)
402f1e:	eb 03                	jmp    0x402f23
402f20:	89 75 f8             	mov    %esi,-0x8(%ebp)
402f23:	8b 45 fc             	mov    -0x4(%ebp),%eax
402f26:	85 c0                	test   %eax,%eax
402f28:	74 19                	je     0x402f43
402f2a:	50                   	push   %eax
402f2b:	8b 45 10             	mov    0x10(%ebp),%eax
402f2e:	03 c2                	add    %edx,%eax
402f30:	03 c3                	add    %ebx,%eax
402f32:	50                   	push   %eax
402f33:	8b 45 f8             	mov    -0x8(%ebp),%eax
402f36:	03 c2                	add    %edx,%eax
402f38:	03 c1                	add    %ecx,%eax
402f3a:	50                   	push   %eax
402f3b:	e8 10 18 00 00       	call   0x404750
402f40:	83 c4 0c             	add    $0xc,%esp
402f43:	39 7e 14             	cmp    %edi,0x14(%esi)
402f46:	72 04                	jb     0x402f4c
402f48:	8b 16                	mov    (%esi),%edx
402f4a:	eb 02                	jmp    0x402f4e
402f4c:	8b d6                	mov    %esi,%edx
402f4e:	39 7e 14             	cmp    %edi,0x14(%esi)
402f51:	72 04                	jb     0x402f57
402f53:	8b 1e                	mov    (%esi),%ebx
402f55:	eb 02                	jmp    0x402f59
402f57:	8b de                	mov    %esi,%ebx
402f59:	8b 4d 18             	mov    0x18(%ebp),%ecx
402f5c:	8b c1                	mov    %ecx,%eax
402f5e:	2b 45 0c             	sub    0xc(%ebp),%eax
402f61:	74 1a                	je     0x402f7d
402f63:	50                   	push   %eax
402f64:	8b 45 14             	mov    0x14(%ebp),%eax
402f67:	03 c2                	add    %edx,%eax
402f69:	03 c1                	add    %ecx,%eax
402f6b:	50                   	push   %eax
402f6c:	8b 45 08             	mov    0x8(%ebp),%eax
402f6f:	03 c3                	add    %ebx,%eax
402f71:	03 45 0c             	add    0xc(%ebp),%eax
402f74:	50                   	push   %eax
402f75:	e8 d6 17 00 00       	call   0x404750
402f7a:	83 c4 0c             	add    $0xc,%esp
402f7d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402f80:	89 4e 10             	mov    %ecx,0x10(%esi)
402f83:	5b                   	pop    %ebx
402f84:	39 7e 14             	cmp    %edi,0x14(%esi)
402f87:	72 04                	jb     0x402f8d
402f89:	8b 06                	mov    (%esi),%eax
402f8b:	eb 02                	jmp    0x402f8f
402f8d:	8b c6                	mov    %esi,%eax
402f8f:	c6 04 08 00          	movb   $0x0,(%eax,%ecx,1)
402f93:	5f                   	pop    %edi
402f94:	8b c6                	mov    %esi,%eax
402f96:	5e                   	pop    %esi
402f97:	c9                   	leave
402f98:	c2 14 00             	ret    $0x14
402f9b:	68 f8 d3 41 00       	push   $0x41d3f8
402fa0:	e8 b5 04 00 00       	call   0x40345a
402fa5:	68 e0 d3 41 00       	push   $0x41d3e0
402faa:	e8 d9 04 00 00       	call   0x403488
402faf:	cc                   	int3
402fb0:	55                   	push   %ebp
402fb1:	8b ec                	mov    %esp,%ebp
402fb3:	8b 55 10             	mov    0x10(%ebp),%edx
402fb6:	56                   	push   %esi
402fb7:	8b f1                	mov    %ecx,%esi
402fb9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
402fbc:	85 d2                	test   %edx,%edx
402fbe:	75 09                	jne    0x402fc9
402fc0:	3b 4e 10             	cmp    0x10(%esi),%ecx
402fc3:	77 04                	ja     0x402fc9
402fc5:	8b c1                	mov    %ecx,%eax
402fc7:	eb 7b                	jmp    0x403044
402fc9:	53                   	push   %ebx
402fca:	57                   	push   %edi
402fcb:	8b 7e 10             	mov    0x10(%esi),%edi
402fce:	3b cf                	cmp    %edi,%ecx
402fd0:	73 6d                	jae    0x40303f
402fd2:	2b f9                	sub    %ecx,%edi
402fd4:	3b d7                	cmp    %edi,%edx
402fd6:	77 67                	ja     0x40303f
402fd8:	33 c0                	xor    %eax,%eax
402fda:	40                   	inc    %eax
402fdb:	2b c2                	sub    %edx,%eax
402fdd:	03 f8                	add    %eax,%edi
402fdf:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
402fe3:	72 04                	jb     0x402fe9
402fe5:	8b 06                	mov    (%esi),%eax
402fe7:	eb 02                	jmp    0x402feb
402fe9:	8b c6                	mov    %esi,%eax
402feb:	03 c8                	add    %eax,%ecx
402fed:	89 4d 0c             	mov    %ecx,0xc(%ebp)
402ff0:	85 ff                	test   %edi,%edi
402ff2:	74 4b                	je     0x40303f
402ff4:	8b 45 08             	mov    0x8(%ebp),%eax
402ff7:	57                   	push   %edi
402ff8:	0f be 00             	movsbl (%eax),%eax
402ffb:	50                   	push   %eax
402ffc:	51                   	push   %ecx
402ffd:	e8 4e 21 00 00       	call   0x405150
403002:	8b d8                	mov    %eax,%ebx
403004:	83 c4 0c             	add    $0xc,%esp
403007:	85 db                	test   %ebx,%ebx
403009:	74 34                	je     0x40303f
40300b:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40300f:	74 20                	je     0x403031
403011:	ff 75 10             	push   0x10(%ebp)
403014:	ff 75 08             	push   0x8(%ebp)
403017:	53                   	push   %ebx
403018:	e8 bb 5e 00 00       	call   0x408ed8
40301d:	83 c4 0c             	add    $0xc,%esp
403020:	85 c0                	test   %eax,%eax
403022:	74 0d                	je     0x403031
403024:	8b 4d 0c             	mov    0xc(%ebp),%ecx
403027:	2b cb                	sub    %ebx,%ecx
403029:	49                   	dec    %ecx
40302a:	03 f9                	add    %ecx,%edi
40302c:	8d 4b 01             	lea    0x1(%ebx),%ecx
40302f:	eb bc                	jmp    0x402fed
403031:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
403035:	72 02                	jb     0x403039
403037:	8b 36                	mov    (%esi),%esi
403039:	2b de                	sub    %esi,%ebx
40303b:	8b c3                	mov    %ebx,%eax
40303d:	eb 03                	jmp    0x403042
40303f:	83 c8 ff             	or     $0xffffffff,%eax
403042:	5f                   	pop    %edi
403043:	5b                   	pop    %ebx
403044:	5e                   	pop    %esi
403045:	5d                   	pop    %ebp
403046:	c2 0c 00             	ret    $0xc
403049:	55                   	push   %ebp
40304a:	8b ec                	mov    %esp,%ebp
40304c:	56                   	push   %esi
40304d:	8b f1                	mov    %ecx,%esi
40304f:	e8 c2 f6 ff ff       	call   0x402716
403054:	8b 45 08             	mov    0x8(%ebp),%eax
403057:	83 66 3c 00          	andl   $0x0,0x3c(%esi)
40305b:	6a 20                	push   $0x20
40305d:	8b ce                	mov    %esi,%ecx
40305f:	89 46 38             	mov    %eax,0x38(%esi)
403062:	e8 7c 00 00 00       	call   0x4030e3
403067:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
40306b:	88 46 40             	mov    %al,0x40(%esi)
40306e:	75 13                	jne    0x403083
403070:	8b 46 0c             	mov    0xc(%esi),%eax
403073:	83 c8 04             	or     $0x4,%eax
403076:	6a 00                	push   $0x0
403078:	83 c8 04             	or     $0x4,%eax
40307b:	50                   	push   %eax
40307c:	8b ce                	mov    %esi,%ecx
40307e:	e8 e3 e5 ff ff       	call   0x401666
403083:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
403087:	74 07                	je     0x403090
403089:	56                   	push   %esi
40308a:	e8 09 12 00 00       	call   0x404298
40308f:	59                   	pop    %ecx
403090:	5e                   	pop    %esi
403091:	5d                   	pop    %ebp
403092:	c2 08 00             	ret    $0x8
403095:	8b 51 08             	mov    0x8(%ecx),%edx
403098:	56                   	push   %esi
403099:	8b 71 04             	mov    0x4(%ecx),%esi
40309c:	8b c2                	mov    %edx,%eax
40309e:	2b c6                	sub    %esi,%eax
4030a0:	83 f8 01             	cmp    $0x1,%eax
4030a3:	73 2f                	jae    0x4030d4
4030a5:	8b 01                	mov    (%ecx),%eax
4030a7:	2b c6                	sub    %esi,%eax
4030a9:	48                   	dec    %eax
4030aa:	83 f8 01             	cmp    $0x1,%eax
4030ad:	72 29                	jb     0x4030d8
4030af:	2b 11                	sub    (%ecx),%edx
4030b1:	2b 31                	sub    (%ecx),%esi
4030b3:	57                   	push   %edi
4030b4:	8b fa                	mov    %edx,%edi
4030b6:	d1 ef                	shr    $1,%edi
4030b8:	83 c8 ff             	or     $0xffffffff,%eax
4030bb:	2b c7                	sub    %edi,%eax
4030bd:	46                   	inc    %esi
4030be:	3b c2                	cmp    %edx,%eax
4030c0:	73 04                	jae    0x4030c6
4030c2:	33 d2                	xor    %edx,%edx
4030c4:	eb 02                	jmp    0x4030c8
4030c6:	03 d7                	add    %edi,%edx
4030c8:	3b d6                	cmp    %esi,%edx
4030ca:	0f 42 d6             	cmovb  %esi,%edx
4030cd:	52                   	push   %edx
4030ce:	e8 85 00 00 00       	call   0x403158
4030d3:	5f                   	pop    %edi
4030d4:	5e                   	pop    %esi
4030d5:	c2 04 00             	ret    $0x4
4030d8:	68 ec d5 41 00       	push   $0x41d5ec
4030dd:	e8 78 03 00 00       	call   0x40345a
4030e2:	cc                   	int3
4030e3:	6a 04                	push   $0x4
4030e5:	b8 ce 7e 41 00       	mov    $0x417ece,%eax
4030ea:	e8 0a 2d 00 00       	call   0x405df9
4030ef:	8d 45 f0             	lea    -0x10(%ebp),%eax
4030f2:	50                   	push   %eax
4030f3:	e8 04 f6 ff ff       	call   0x4026fc
4030f8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4030fc:	50                   	push   %eax
4030fd:	e8 8e 01 00 00       	call   0x403290
403102:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
403106:	59                   	pop    %ecx
403107:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40310a:	8b f0                	mov    %eax,%esi
40310c:	e8 ba f3 ff ff       	call   0x4024cb
403111:	8b 16                	mov    (%esi),%edx
403113:	ff 75 08             	push   0x8(%ebp)
403116:	8b ce                	mov    %esi,%ecx
403118:	ff 52 20             	call   *0x20(%edx)
40311b:	e8 b6 2c 00 00       	call   0x405dd6
403120:	c2 04 00             	ret    $0x4
403123:	56                   	push   %esi
403124:	57                   	push   %edi
403125:	8b f9                	mov    %ecx,%edi
403127:	6a 04                	push   $0x4
403129:	c7 07 94 a0 41 00    	movl   $0x41a094,(%edi)
40312f:	e8 14 1e 00 00       	call   0x404f48
403134:	8b f0                	mov    %eax,%esi
403136:	59                   	pop    %ecx
403137:	85 f6                	test   %esi,%esi
403139:	74 0c                	je     0x403147
40313b:	6a 01                	push   $0x1
40313d:	e8 8c 0f 00 00       	call   0x4040ce
403142:	59                   	pop    %ecx
403143:	89 06                	mov    %eax,(%esi)
403145:	eb 02                	jmp    0x403149
403147:	33 f6                	xor    %esi,%esi
403149:	8b cf                	mov    %edi,%ecx
40314b:	89 77 34             	mov    %esi,0x34(%edi)
40314e:	e8 f9 00 00 00       	call   0x40324c
403153:	8b c7                	mov    %edi,%eax
403155:	5f                   	pop    %edi
403156:	5e                   	pop    %esi
403157:	c3                   	ret
403158:	55                   	push   %ebp
403159:	8b ec                	mov    %esp,%ebp
40315b:	53                   	push   %ebx
40315c:	56                   	push   %esi
40315d:	57                   	push   %edi
40315e:	8b 7d 08             	mov    0x8(%ebp),%edi
403161:	33 f6                	xor    %esi,%esi
403163:	8b d9                	mov    %ecx,%ebx
403165:	85 ff                	test   %edi,%edi
403167:	74 12                	je     0x40317b
403169:	83 ff ff             	cmp    $0xffffffff,%edi
40316c:	77 4a                	ja     0x4031b8
40316e:	57                   	push   %edi
40316f:	e8 d4 1d 00 00       	call   0x404f48
403174:	8b f0                	mov    %eax,%esi
403176:	59                   	pop    %ecx
403177:	85 f6                	test   %esi,%esi
403179:	74 3d                	je     0x4031b8
40317b:	8b 43 04             	mov    0x4(%ebx),%eax
40317e:	2b 03                	sub    (%ebx),%eax
403180:	50                   	push   %eax
403181:	ff 33                	push   (%ebx)
403183:	56                   	push   %esi
403184:	e8 c7 15 00 00       	call   0x404750
403189:	8b 43 04             	mov    0x4(%ebx),%eax
40318c:	2b 03                	sub    (%ebx),%eax
40318e:	83 c4 0c             	add    $0xc,%esp
403191:	83 3b 00             	cmpl   $0x0,(%ebx)
403194:	89 45 08             	mov    %eax,0x8(%ebp)
403197:	74 08                	je     0x4031a1
403199:	ff 33                	push   (%ebx)
40319b:	e8 58 1d 00 00       	call   0x404ef8
4031a0:	59                   	pop    %ecx
4031a1:	8d 04 3e             	lea    (%esi,%edi,1),%eax
4031a4:	89 43 08             	mov    %eax,0x8(%ebx)
4031a7:	8b 45 08             	mov    0x8(%ebp),%eax
4031aa:	5f                   	pop    %edi
4031ab:	03 c6                	add    %esi,%eax
4031ad:	89 33                	mov    %esi,(%ebx)
4031af:	5e                   	pop    %esi
4031b0:	89 43 04             	mov    %eax,0x4(%ebx)
4031b3:	5b                   	pop    %ebx
4031b4:	5d                   	pop    %ebp
4031b5:	c2 04 00             	ret    $0x4
4031b8:	e8 6c 02 00 00       	call   0x403429
4031bd:	cc                   	int3
4031be:	55                   	push   %ebp
4031bf:	8b ec                	mov    %esp,%ebp
4031c1:	56                   	push   %esi
4031c2:	57                   	push   %edi
4031c3:	8b 7d 08             	mov    0x8(%ebp),%edi
4031c6:	8b f1                	mov    %ecx,%esi
4031c8:	83 ff ff             	cmp    $0xffffffff,%edi
4031cb:	74 34                	je     0x403201
4031cd:	6a 00                	push   $0x0
4031cf:	57                   	push   %edi
4031d0:	e8 39 e1 ff ff       	call   0x40130e
4031d5:	84 c0                	test   %al,%al
4031d7:	74 20                	je     0x4031f9
4031d9:	ff 75 0c             	push   0xc(%ebp)
4031dc:	8b ce                	mov    %esi,%ecx
4031de:	57                   	push   %edi
4031df:	6a 00                	push   $0x0
4031e1:	e8 26 00 00 00       	call   0x40320c
4031e6:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
4031ea:	89 7e 10             	mov    %edi,0x10(%esi)
4031ed:	72 04                	jb     0x4031f3
4031ef:	8b 06                	mov    (%esi),%eax
4031f1:	eb 02                	jmp    0x4031f5
4031f3:	8b c6                	mov    %esi,%eax
4031f5:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
4031f9:	5f                   	pop    %edi
4031fa:	8b c6                	mov    %esi,%eax
4031fc:	5e                   	pop    %esi
4031fd:	5d                   	pop    %ebp
4031fe:	c2 08 00             	ret    $0x8
403201:	68 f8 d3 41 00       	push   $0x41d3f8
403206:	e8 4f 02 00 00       	call   0x40345a
40320b:	cc                   	int3
40320c:	55                   	push   %ebp
40320d:	8b ec                	mov    %esp,%ebp
40320f:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
403213:	8b d1                	mov    %ecx,%edx
403215:	75 13                	jne    0x40322a
403217:	83 7a 14 10          	cmpl   $0x10,0x14(%edx)
40321b:	72 02                	jb     0x40321f
40321d:	8b 12                	mov    (%edx),%edx
40321f:	8b 45 08             	mov    0x8(%ebp),%eax
403222:	8a 4d 10             	mov    0x10(%ebp),%cl
403225:	88 0c 02             	mov    %cl,(%edx,%eax,1)
403228:	eb 1e                	jmp    0x403248
40322a:	83 7a 14 10          	cmpl   $0x10,0x14(%edx)
40322e:	72 02                	jb     0x403232
403230:	8b 12                	mov    (%edx),%edx
403232:	0f be 45 10          	movsbl 0x10(%ebp),%eax
403236:	ff 75 0c             	push   0xc(%ebp)
403239:	50                   	push   %eax
40323a:	8b 45 08             	mov    0x8(%ebp),%eax
40323d:	03 c2                	add    %edx,%eax
40323f:	50                   	push   %eax