405db6:	40                   	inc    %eax
405db7:	85 f6                	test   %esi,%esi
405db9:	75 eb                	jne    0x405da6
405dbb:	eb 02                	jmp    0x405dbf
405dbd:	33 c0                	xor    %eax,%eax
405dbf:	5f                   	pop    %edi
405dc0:	5e                   	pop    %esi
405dc1:	5b                   	pop    %ebx
405dc2:	c2 04 00             	ret    $0x4
405dc5:	56                   	push   %esi
405dc6:	57                   	push   %edi
405dc7:	ff 74 24 0c          	push   0xc(%esp)
405dcb:	be 30 5f 42 00       	mov    $0x425f30,%esi
405dd0:	56                   	push   %esi
405dd1:	e8 12 06 00 00       	call   0x4063e8
405dd6:	56                   	push   %esi
405dd7:	e8 8c ff ff ff       	call   0x405d68
405ddc:	8b f8                	mov    %eax,%edi
405dde:	85 ff                	test   %edi,%edi
405de0:	75 04                	jne    0x405de6
405de2:	33 c0                	xor    %eax,%eax
405de4:	eb 58                	jmp    0x405e3e
405de6:	57                   	push   %edi
405de7:	e8 90 08 00 00       	call   0x40667c
405dec:	f6 05 5c a2 42 00 80 	testb  $0x80,0x42a25c
405df3:	74 0e                	je     0x405e03
405df5:	66 8b 07             	mov    (%edi),%ax
405df8:	66 85 c0             	test   %ax,%ax
405dfb:	74 e5                	je     0x405de2
405dfd:	66 3d 5c 00          	cmp    $0x5c,%ax
405e01:	74 df                	je     0x405de2
405e03:	2b fe                	sub    %esi,%edi
405e05:	d1 ff                	sar    $1,%edi
405e07:	eb 14                	jmp    0x405e1d
405e09:	e8 1d 09 00 00       	call   0x40672b
405e0e:	85 c0                	test   %eax,%eax
405e10:	74 05                	je     0x405e17
405e12:	f6 00 10             	testb  $0x10,(%eax)
405e15:	74 cb                	je     0x405de2
405e17:	56                   	push   %esi
405e18:	e8 ec fe ff ff       	call   0x405d09
405e1d:	56                   	push   %esi
405e1e:	e8 db 05 00 00       	call   0x4063fe
405e23:	3b c7                	cmp    %edi,%eax
405e25:	56                   	push   %esi
405e26:	7f e1                	jg     0x405e09
405e28:	e8 90 fe ff ff       	call   0x405cbd
405e2d:	56                   	push   %esi
405e2e:	ff 15 94 80 40 00    	call   *0x408094
405e34:	33 c9                	xor    %ecx,%ecx
405e36:	83 f8 ff             	cmp    $0xffffffff,%eax
405e39:	0f 95 c1             	setne  %cl
405e3c:	8b c1                	mov    %ecx,%eax
405e3e:	5f                   	pop    %edi
405e3f:	5e                   	pop    %esi
405e40:	c2 04 00             	ret    $0x4
405e43:	55                   	push   %ebp
405e44:	8b ec                	mov    %esp,%ebp
405e46:	51                   	push   %ecx
405e47:	53                   	push   %ebx
405e48:	56                   	push   %esi
405e49:	57                   	push   %edi
405e4a:	8b 3d 50 81 40 00    	mov    0x408150,%edi
405e50:	ff 75 0c             	push   0xc(%ebp)
405e53:	ff d7                	call   *%edi
405e55:	8b 75 08             	mov    0x8(%ebp),%esi
405e58:	89 45 fc             	mov    %eax,-0x4(%ebp)
405e5b:	eb 27                	jmp    0x405e84
405e5d:	8b 45 fc             	mov    -0x4(%ebp),%eax
405e60:	ff 75 0c             	push   0xc(%ebp)
405e63:	8a 1c 30             	mov    (%eax,%esi,1),%bl
405e66:	80 24 30 00          	andb   $0x0,(%eax,%esi,1)
405e6a:	56                   	push   %esi
405e6b:	ff 15 d8 80 40 00    	call   *0x4080d8
405e71:	85 c0                	test   %eax,%eax
405e73:	8b 45 fc             	mov    -0x4(%ebp),%eax
405e76:	88 1c 30             	mov    %bl,(%eax,%esi,1)
405e79:	74 1a                	je     0x405e95
405e7b:	56                   	push   %esi
405e7c:	ff 15 fc 81 40 00    	call   *0x4081fc
405e82:	8b f0                	mov    %eax,%esi
405e84:	56                   	push   %esi
405e85:	ff d7                	call   *%edi
405e87:	3b 45 fc             	cmp    -0x4(%ebp),%eax
405e8a:	7d d1                	jge    0x405e5d
405e8c:	33 c0                	xor    %eax,%eax
405e8e:	5f                   	pop    %edi
405e8f:	5e                   	pop    %esi
405e90:	5b                   	pop    %ebx
405e91:	c9                   	leave
405e92:	c2 08 00             	ret    $0x8
405e95:	8b c6                	mov    %esi,%eax
405e97:	eb f5                	jmp    0x405e8e
405e99:	8b 4c 24 04          	mov    0x4(%esp),%ecx
405e9d:	56                   	push   %esi
405e9e:	8b 74 24 10          	mov    0x10(%esp),%esi
405ea2:	85 f6                	test   %esi,%esi
405ea4:	76 0f                	jbe    0x405eb5
405ea6:	8b 44 24 0c          	mov    0xc(%esp),%eax
405eaa:	2b c1                	sub    %ecx,%eax
405eac:	8a 14 08             	mov    (%eax,%ecx,1),%dl
405eaf:	88 11                	mov    %dl,(%ecx)
405eb1:	41                   	inc    %ecx
405eb2:	4e                   	dec    %esi
405eb3:	75 f7                	jne    0x405eac
405eb5:	5e                   	pop    %esi
405eb6:	c2 0c 00             	ret    $0xc
405eb9:	56                   	push   %esi
405eba:	ff 74 24 08          	push   0x8(%esp)
405ebe:	ff 15 94 80 40 00    	call   *0x408094
405ec4:	8b f0                	mov    %eax,%esi
405ec6:	83 fe ff             	cmp    $0xffffffff,%esi
405ec9:	74 0d                	je     0x405ed8
405ecb:	24 fe                	and    $0xfe,%al
405ecd:	50                   	push   %eax
405ece:	ff 74 24 0c          	push   0xc(%esp)
405ed2:	ff 15 74 80 40 00    	call   *0x408074
405ed8:	8b c6                	mov    %esi,%eax
405eda:	5e                   	pop    %esi
405edb:	c2 04 00             	ret    $0x4
405ede:	ff 74 24 04          	push   0x4(%esp)
405ee2:	ff 15 94 80 40 00    	call   *0x408094
405ee8:	8b c8                	mov    %eax,%ecx
405eea:	6a 00                	push   $0x0
405eec:	41                   	inc    %ecx
405eed:	f7 d9                	neg    %ecx
405eef:	1b c9                	sbb    %ecx,%ecx
405ef1:	23 c8                	and    %eax,%ecx
405ef3:	51                   	push   %ecx
405ef4:	ff 74 24 14          	push   0x14(%esp)
405ef8:	6a 00                	push   $0x0
405efa:	6a 01                	push   $0x1
405efc:	ff 74 24 1c          	push   0x1c(%esp)
405f00:	ff 74 24 1c          	push   0x1c(%esp)
405f04:	ff 15 80 80 40 00    	call   *0x408080
405f0a:	c2 0c 00             	ret    $0xc
405f0d:	55                   	push   %ebp
405f0e:	8b ec                	mov    %esp,%ebp
405f10:	51                   	push   %ecx
405f11:	51                   	push   %ecx
405f12:	56                   	push   %esi
405f13:	8b 75 08             	mov    0x8(%ebp),%esi
405f16:	57                   	push   %edi
405f17:	6a 64                	push   $0x64
405f19:	5f                   	pop    %edi
405f1a:	a1 88 a5 40 00       	mov    0x40a588,%eax
405f1f:	4f                   	dec    %edi
405f20:	89 45 f8             	mov    %eax,-0x8(%ebp)
405f23:	a1 8c a5 40 00       	mov    0x40a58c,%eax
405f28:	89 45 fc             	mov    %eax,-0x4(%ebp)
405f2b:	ff 15 7c 80 40 00    	call   *0x40807c
405f31:	6a 1a                	push   $0x1a
405f33:	33 d2                	xor    %edx,%edx
405f35:	59                   	pop    %ecx
405f36:	f7 f1                	div    %ecx
405f38:	56                   	push   %esi
405f39:	8d 45 f8             	lea    -0x8(%ebp),%eax
405f3c:	6a 00                	push   $0x0
405f3e:	50                   	push   %eax
405f3f:	ff 75 0c             	push   0xc(%ebp)
405f42:	66 01 55 fc          	add    %dx,-0x4(%ebp)
405f46:	ff 15 dc 80 40 00    	call   *0x4080dc
405f4c:	85 c0                	test   %eax,%eax
405f4e:	75 0d                	jne    0x405f5d
405f50:	85 ff                	test   %edi,%edi
405f52:	75 c6                	jne    0x405f1a
405f54:	66 21 3e             	and    %di,(%esi)
405f57:	5f                   	pop    %edi
405f58:	5e                   	pop    %esi
405f59:	c9                   	leave
405f5a:	c2 08 00             	ret    $0x8
405f5d:	8b c6                	mov    %esi,%eax
405f5f:	eb f6                	jmp    0x405f57
405f61:	55                   	push   %ebp
405f62:	8b ec                	mov    %esp,%ebp
405f64:	56                   	push   %esi
405f65:	8b 75 10             	mov    0x10(%ebp),%esi
405f68:	8d 45 10             	lea    0x10(%ebp),%eax
405f6b:	6a 00                	push   $0x0
405f6d:	50                   	push   %eax
405f6e:	56                   	push   %esi
405f6f:	ff 75 0c             	push   0xc(%ebp)
405f72:	ff 75 08             	push   0x8(%ebp)
405f75:	ff 15 48 81 40 00    	call   *0x408148
405f7b:	85 c0                	test   %eax,%eax
405f7d:	74 0a                	je     0x405f89
405f7f:	3b 75 10             	cmp    0x10(%ebp),%esi
405f82:	75 05                	jne    0x405f89
405f84:	33 c0                	xor    %eax,%eax
405f86:	40                   	inc    %eax
405f87:	eb 02                	jmp    0x405f8b
405f89:	33 c0                	xor    %eax,%eax
405f8b:	5e                   	pop    %esi
405f8c:	5d                   	pop    %ebp
405f8d:	c2 0c 00             	ret    $0xc
405f90:	55                   	push   %ebp
405f91:	8b ec                	mov    %esp,%ebp
405f93:	56                   	push   %esi
405f94:	8b 75 10             	mov    0x10(%ebp),%esi
405f97:	8d 45 10             	lea    0x10(%ebp),%eax
405f9a:	6a 00                	push   $0x0
405f9c:	50                   	push   %eax
405f9d:	56                   	push   %esi
405f9e:	ff 75 0c             	push   0xc(%ebp)
405fa1:	ff 75 08             	push   0x8(%ebp)
405fa4:	ff 15 e0 80 40 00    	call   *0x4080e0
405faa:	85 c0                	test   %eax,%eax
405fac:	74 0a                	je     0x405fb8
405fae:	3b 75 10             	cmp    0x10(%ebp),%esi
405fb1:	75 05                	jne    0x405fb8
405fb3:	33 c0                	xor    %eax,%eax
405fb5:	40                   	inc    %eax
405fb6:	eb 02                	jmp    0x405fba
405fb8:	33 c0                	xor    %eax,%eax
405fba:	5e                   	pop    %esi
405fbb:	5d                   	pop    %ebp
405fbc:	c2 0c 00             	ret    $0xc
405fbf:	55                   	push   %ebp
405fc0:	8b ec                	mov    %esp,%ebp
405fc2:	53                   	push   %ebx
405fc3:	8b 5d 08             	mov    0x8(%ebp),%ebx
405fc6:	56                   	push   %esi
405fc7:	8b 35 44 81 40 00    	mov    0x408144,%esi
405fcd:	57                   	push   %edi
405fce:	33 ff                	xor    %edi,%edi
405fd0:	6a 01                	push   $0x1
405fd2:	57                   	push   %edi
405fd3:	57                   	push   %edi
405fd4:	53                   	push   %ebx
405fd5:	ff d6                	call   *%esi
405fd7:	85 c0                	test   %eax,%eax
405fd9:	75 4f                	jne    0x40602a
405fdb:	8d 45 0a             	lea    0xa(%ebp),%eax
405fde:	6a 02                	push   $0x2
405fe0:	50                   	push   %eax
405fe1:	53                   	push   %ebx
405fe2:	e8 7a ff ff ff       	call   0x405f61
405fe7:	85 c0                	test   %eax,%eax
405fe9:	74 0c                	je     0x405ff7
405feb:	66 81 7d 0a ff fe    	cmpw   $0xfeff,0xa(%ebp)
405ff1:	75 04                	jne    0x405ff7
405ff3:	33 c0                	xor    %eax,%eax
405ff5:	eb 36                	jmp    0x40602d
405ff7:	39 7d 0c             	cmp    %edi,0xc(%ebp)
405ffa:	74 28                	je     0x406024
405ffc:	6a 01                	push   $0x1
405ffe:	57                   	push   %edi
405fff:	57                   	push   %edi
406000:	53                   	push   %ebx
406001:	ff d6                	call   *%esi
406003:	85 c0                	test   %eax,%eax
406005:	75 1d                	jne    0x406024
406007:	6a 02                	push   $0x2
406009:	68 1c 84 40 00       	push   $0x40841c
40600e:	53                   	push   %ebx
40600f:	e8 7c ff ff ff       	call   0x405f90
406014:	f7 d8                	neg    %eax
406016:	1b c0                	sbb    %eax,%eax
406018:	25 fb bf ff 7f       	and    $0x7fffbffb,%eax
40601d:	05 05 40 00 80       	add    $0x80004005,%eax
406022:	eb 09                	jmp    0x40602d
406024:	57                   	push   %edi
406025:	57                   	push   %edi
406026:	57                   	push   %edi
406027:	53                   	push   %ebx
406028:	ff d6                	call   *%esi
40602a:	33 c0                	xor    %eax,%eax
40602c:	40                   	inc    %eax
40602d:	5f                   	pop    %edi
40602e:	5e                   	pop    %esi
40602f:	5b                   	pop    %ebx
406030:	5d                   	pop    %ebp
406031:	c2 08 00             	ret    $0x8
406034:	53                   	push   %ebx
406035:	8b 1d bc 80 40 00    	mov    0x4080bc,%ebx
40603b:	55                   	push   %ebp
40603c:	56                   	push   %esi
40603d:	8b 74 24 14          	mov    0x14(%esp),%esi
406041:	57                   	push   %edi
406042:	85 f6                	test   %esi,%esi
406044:	c7 05 c8 6d 42 00 4e 	movl   $0x55004e,0x426dc8
40604b:	00 55 00
40604e:	c7 05 cc 6d 42 00 4c 	movl   $0x4c,0x426dcc
406055:	00 00 00
406058:	bf 00 04 00 00       	mov    $0x400,%edi
40605d:	bd c8 6d 42 00       	mov    $0x426dc8,%ebp
406062:	74 26                	je     0x40608a
406064:	6a 01                	push   $0x1
406066:	6a 00                	push   $0x0
406068:	56                   	push   %esi
406069:	e8 70 fe ff ff       	call   0x405ede
40606e:	50                   	push   %eax
40606f:	ff 15 20 81 40 00    	call   *0x408120
406075:	57                   	push   %edi
406076:	55                   	push   %ebp
406077:	56                   	push   %esi
406078:	ff d3                	call   *%ebx
40607a:	85 c0                	test   %eax,%eax
40607c:	0f 84 27 01 00 00    	je     0x4061a9
406082:	3b c7                	cmp    %edi,%eax
406084:	0f 8f 1f 01 00 00    	jg     0x4061a9
40608a:	be c8 75 42 00       	mov    $0x4275c8,%esi
40608f:	57                   	push   %edi
406090:	56                   	push   %esi
406091:	ff 74 24 1c          	push   0x1c(%esp)
406095:	ff d3                	call   *%ebx
406097:	85 c0                	test   %eax,%eax
406099:	0f 84 0a 01 00 00    	je     0x4061a9
40609f:	3b c7                	cmp    %edi,%eax
4060a1:	0f 8f 02 01 00 00    	jg     0x4061a9
4060a7:	56                   	push   %esi
4060a8:	55                   	push   %ebp
4060a9:	68 a0 a5 40 00       	push   $0x40a5a0
4060ae:	68 c8 69 42 00       	push   $0x4269c8
4060b3:	ff 15 00 82 40 00    	call   *0x408200
4060b9:	8b d8                	mov    %eax,%ebx
4060bb:	a1 54 a2 42 00       	mov    0x42a254,%eax
4060c0:	83 c4 10             	add    $0x10,%esp
4060c3:	ff b0 28 01 00 00    	push   0x128(%eax)
4060c9:	56                   	push   %esi
4060ca:	e8 3b 03 00 00       	call   0x40640a
4060cf:	6a 04                	push   $0x4
4060d1:	68 00 00 00 c0       	push   $0xc0000000
4060d6:	56                   	push   %esi
4060d7:	e8 02 fe ff ff       	call   0x405ede
4060dc:	8b e8                	mov    %eax,%ebp
4060de:	83 fd ff             	cmp    $0xffffffff,%ebp
4060e1:	89 6c 24 18          	mov    %ebp,0x18(%esp)
4060e5:	0f 84 be 00 00 00    	je     0x4061a9
4060eb:	6a 00                	push   $0x0
4060ed:	55                   	push   %ebp
4060ee:	ff 15 84 80 40 00    	call   *0x408084
4060f4:	8b f8                	mov    %eax,%edi
4060f6:	8d 44 1f 0a          	lea    0xa(%edi,%ebx,1),%eax
4060fa:	50                   	push   %eax
4060fb:	6a 40                	push   $0x40
4060fd:	ff 15 34 81 40 00    	call   *0x408134
406103:	8b f0                	mov    %eax,%esi
406105:	85 f6                	test   %esi,%esi
406107:	0f 84 95 00 00 00    	je     0x4061a2
40610d:	57                   	push   %edi
40610e:	56                   	push   %esi
40610f:	55                   	push   %ebp
406110:	e8 4c fe ff ff       	call   0x405f61
406115:	85 c0                	test   %eax,%eax
406117:	0f 84 85 00 00 00    	je     0x4061a2
40611d:	68 94 a5 40 00       	push   $0x40a594
406122:	56                   	push   %esi
406123:	e8 1b fd ff ff       	call   0x405e43
406128:	85 c0                	test   %eax,%eax