419deb:	ff 15 94 35 42 00    	call   *0x423594
419df1:	8b f8                	mov    %eax,%edi
419df3:	83 c4 28             	add    $0x28,%esp
419df6:	89 7d d8             	mov    %edi,-0x28(%ebp)
419df9:	85 ff                	test   %edi,%edi
419dfb:	74 a0                	je     0x419d9d
419dfd:	8b 45 d4             	mov    -0x2c(%ebp),%eax
419e00:	03 c0                	add    %eax,%eax
419e02:	89 45 e8             	mov    %eax,-0x18(%ebp)
419e05:	33 c9                	xor    %ecx,%ecx
419e07:	50                   	push   %eax
419e08:	88 4d ff             	mov    %cl,-0x1(%ebp)
419e0b:	e8 08 1b 00 00       	call   0x41b918
419e10:	8b f8                	mov    %eax,%edi
419e12:	89 7d d4             	mov    %edi,-0x2c(%ebp)
419e15:	59                   	pop    %ecx
419e16:	85 ff                	test   %edi,%edi
419e18:	0f 84 ed 00 00 00    	je     0x419f0b
419e1e:	ff 75 e8             	push   -0x18(%ebp)
419e21:	33 c0                	xor    %eax,%eax
419e23:	50                   	push   %eax
419e24:	57                   	push   %edi
419e25:	e8 f7 27 00 00       	call   0x41c621
419e2a:	8b 45 d0             	mov    -0x30(%ebp),%eax
419e2d:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
419e30:	51                   	push   %ecx
419e31:	53                   	push   %ebx
419e32:	ff 75 e8             	push   -0x18(%ebp)
419e35:	57                   	push   %edi
419e36:	ff 15 90 35 42 00    	call   *0x423590
419e3c:	33 c0                	xor    %eax,%eax
419e3e:	89 45 ec             	mov    %eax,-0x14(%ebp)
419e41:	8d 45 ec             	lea    -0x14(%ebp),%eax
419e44:	50                   	push   %eax
419e45:	8d 45 f0             	lea    -0x10(%ebp),%eax
419e48:	50                   	push   %eax
419e49:	57                   	push   %edi
419e4a:	ff 15 94 35 42 00    	call   *0x423594
419e50:	8b f8                	mov    %eax,%edi
419e52:	83 c4 28             	add    $0x28,%esp
419e55:	85 ff                	test   %edi,%edi
419e57:	74 75                	je     0x419ece
419e59:	8b 5d d8             	mov    -0x28(%ebp),%ebx
419e5c:	8b cb                	mov    %ebx,%ecx
419e5e:	8d 51 02             	lea    0x2(%ecx),%edx
419e61:	66 8b 01             	mov    (%ecx),%ax
419e64:	83 c1 02             	add    $0x2,%ecx
419e67:	66 3b 45 f8          	cmp    -0x8(%ebp),%ax
419e6b:	75 f4                	jne    0x419e61
419e6d:	2b ca                	sub    %edx,%ecx
419e6f:	d1 f9                	sar    $1,%ecx
419e71:	51                   	push   %ecx
419e72:	57                   	push   %edi
419e73:	53                   	push   %ebx
419e74:	ff 15 8c 35 42 00    	call   *0x42358c
419e7a:	83 c4 0c             	add    $0xc,%esp
419e7d:	85 c0                	test   %eax,%eax
419e7f:	75 30                	jne    0x419eb1
419e81:	8b cb                	mov    %ebx,%ecx
419e83:	8d 51 02             	lea    0x2(%ecx),%edx
419e86:	66 8b 01             	mov    (%ecx),%ax
419e89:	83 c1 02             	add    $0x2,%ecx
419e8c:	66 3b 45 f8          	cmp    -0x8(%ebp),%ax
419e90:	75 f4                	jne    0x419e86
419e92:	2b ca                	sub    %edx,%ecx
419e94:	8d 57 02             	lea    0x2(%edi),%edx
419e97:	d1 f9                	sar    $1,%ecx
419e99:	66 8b 07             	mov    (%edi),%ax
419e9c:	83 c7 02             	add    $0x2,%edi
419e9f:	66 3b 45 f8          	cmp    -0x8(%ebp),%ax
419ea3:	75 f4                	jne    0x419e99
419ea5:	2b fa                	sub    %edx,%edi
419ea7:	d1 ff                	sar    $1,%edi
419ea9:	3b cf                	cmp    %edi,%ecx
419eab:	75 04                	jne    0x419eb1
419ead:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
419eb1:	8d 45 ec             	lea    -0x14(%ebp),%eax
419eb4:	50                   	push   %eax
419eb5:	8d 45 f0             	lea    -0x10(%ebp),%eax
419eb8:	50                   	push   %eax
419eb9:	33 c0                	xor    %eax,%eax
419ebb:	50                   	push   %eax
419ebc:	ff 15 94 35 42 00    	call   *0x423594
419ec2:	8b f8                	mov    %eax,%edi
419ec4:	83 c4 0c             	add    $0xc,%esp
419ec7:	85 ff                	test   %edi,%edi
419ec9:	75 91                	jne    0x419e5c
419ecb:	8b 5d f4             	mov    -0xc(%ebp),%ebx
419ece:	ff 75 d4             	push   -0x2c(%ebp)
419ed1:	e8 48 1a 00 00       	call   0x41b91e
419ed6:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
419eda:	59                   	pop    %ecx
419edb:	0f 84 bc fe ff ff    	je     0x419d9d
419ee1:	8d 45 dc             	lea    -0x24(%ebp),%eax
419ee4:	50                   	push   %eax
419ee5:	8d 45 f0             	lea    -0x10(%ebp),%eax
419ee8:	50                   	push   %eax
419ee9:	33 c0                	xor    %eax,%eax
419eeb:	50                   	push   %eax
419eec:	ff 15 94 35 42 00    	call   *0x423594
419ef2:	83 c4 0c             	add    $0xc,%esp
419ef5:	89 45 d8             	mov    %eax,-0x28(%ebp)
419ef8:	85 c0                	test   %eax,%eax
419efa:	8b 45 e8             	mov    -0x18(%ebp),%eax
419efd:	0f 85 02 ff ff ff    	jne    0x419e05
419f03:	8b 7d e4             	mov    -0x1c(%ebp),%edi
419f06:	c6 06 01             	movb   $0x1,(%esi)
419f09:	eb 09                	jmp    0x419f14
419f0b:	bf 17 00 00 c0       	mov    $0xc0000017,%edi
419f10:	33 c0                	xor    %eax,%eax
419f12:	88 06                	mov    %al,(%esi)
419f14:	53                   	push   %ebx
419f15:	e8 04 1a 00 00       	call   0x41b91e
419f1a:	8b 45 e0             	mov    -0x20(%ebp),%eax
419f1d:	59                   	pop    %ecx
419f1e:	85 c0                	test   %eax,%eax
419f20:	74 07                	je     0x419f29
419f22:	50                   	push   %eax
419f23:	e8 f6 19 00 00       	call   0x41b91e
419f28:	59                   	pop    %ecx
419f29:	8b c7                	mov    %edi,%eax
419f2b:	5f                   	pop    %edi
419f2c:	5e                   	pop    %esi
419f2d:	5b                   	pop    %ebx
419f2e:	c9                   	leave
419f2f:	c3                   	ret
419f30:	8b ff                	mov    %edi,%edi
419f32:	55                   	push   %ebp
419f33:	8b ec                	mov    %esp,%ebp
419f35:	33 c0                	xor    %eax,%eax
419f37:	56                   	push   %esi
419f38:	8b f2                	mov    %edx,%esi
419f3a:	85 c9                	test   %ecx,%ecx
419f3c:	75 07                	jne    0x419f45
419f3e:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
419f43:	eb 21                	jmp    0x419f66
419f45:	8b 55 08             	mov    0x8(%ebp),%edx
419f48:	57                   	push   %edi
419f49:	bf 00 00 20 00       	mov    $0x200000,%edi
419f4e:	89 02                	mov    %eax,(%edx)
419f50:	85 79 04             	test   %edi,0x4(%ecx)
419f53:	75 04                	jne    0x419f59
419f55:	85 39                	test   %edi,(%ecx)
419f57:	74 0c                	je     0x419f65
419f59:	ff 75 0c             	push   0xc(%ebp)
419f5c:	52                   	push   %edx
419f5d:	51                   	push   %ecx
419f5e:	8b ce                	mov    %esi,%ecx
419f60:	e8 94 10 00 00       	call   0x41aff9
419f65:	5f                   	pop    %edi
419f66:	5e                   	pop    %esi
419f67:	5d                   	pop    %ebp
419f68:	c2 08 00             	ret    $0x8
419f6b:	8b ff                	mov    %edi,%edi
419f6d:	55                   	push   %ebp
419f6e:	8b ec                	mov    %esp,%ebp
419f70:	83 ec 14             	sub    $0x14,%esp
419f73:	53                   	push   %ebx
419f74:	33 db                	xor    %ebx,%ebx
419f76:	89 55 f4             	mov    %edx,-0xc(%ebp)
419f79:	8b c1                	mov    %ecx,%eax
419f7b:	89 5d f8             	mov    %ebx,-0x8(%ebp)
419f7e:	89 45 f0             	mov    %eax,-0x10(%ebp)
419f81:	89 5d fc             	mov    %ebx,-0x4(%ebp)
419f84:	88 1a                	mov    %bl,(%edx)
419f86:	57                   	push   %edi
419f87:	85 c0                	test   %eax,%eax
419f89:	75 0a                	jne    0x419f95
419f8b:	bf 0d 00 00 c0       	mov    $0xc000000d,%edi
419f90:	e9 8a 00 00 00       	jmp    0x41a01f
419f95:	8b 48 18             	mov    0x18(%eax),%ecx
419f98:	89 4d ec             	mov    %ecx,-0x14(%ebp)
419f9b:	56                   	push   %esi
419f9c:	85 c9                	test   %ecx,%ecx
419f9e:	74 04                	je     0x419fa4
419fa0:	8b f1                	mov    %ecx,%esi
419fa2:	eb 17                	jmp    0x419fbb
419fa4:	8d 4d f8             	lea    -0x8(%ebp),%ecx
419fa7:	e8 d9 f9 ff ff       	call   0x419985
419fac:	8b 75 f8             	mov    -0x8(%ebp),%esi
419faf:	8b f8                	mov    %eax,%edi
419fb1:	85 ff                	test   %edi,%edi
419fb3:	78 4d                	js     0x41a002
419fb5:	8b 45 f0             	mov    -0x10(%ebp),%eax
419fb8:	8b 55 f4             	mov    -0xc(%ebp),%edx
419fbb:	52                   	push   %edx
419fbc:	8d 4d fc             	lea    -0x4(%ebp),%ecx
419fbf:	89 75 f8             	mov    %esi,-0x8(%ebp)
419fc2:	51                   	push   %ecx
419fc3:	8b d6                	mov    %esi,%edx
419fc5:	8b c8                	mov    %eax,%ecx
419fc7:	e8 64 ff ff ff       	call   0x419f30
419fcc:	8b f8                	mov    %eax,%edi
419fce:	85 ff                	test   %edi,%edi
419fd0:	78 2d                	js     0x419fff
419fd2:	8b 45 f4             	mov    -0xc(%ebp),%eax
419fd5:	38 18                	cmp    %bl,(%eax)
419fd7:	74 26                	je     0x419fff
419fd9:	8b 75 f0             	mov    -0x10(%ebp),%esi
419fdc:	83 c6 14             	add    $0x14,%esi
419fdf:	56                   	push   %esi
419fe0:	ff 15 ac 35 42 00    	call   *0x4235ac
419fe6:	8b 5d fc             	mov    -0x4(%ebp),%ebx
419fe9:	53                   	push   %ebx
419fea:	56                   	push   %esi
419feb:	ff 15 a4 35 42 00    	call   *0x4235a4
419ff1:	8b 75 f8             	mov    -0x8(%ebp),%esi
419ff4:	84 c0                	test   %al,%al
419ff6:	75 0a                	jne    0x41a002
419ff8:	bf 17 00 00 c0       	mov    $0xc0000017,%edi
419ffd:	eb 03                	jmp    0x41a002
419fff:	8b 5d fc             	mov    -0x4(%ebp),%ebx
41a002:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
41a006:	75 0b                	jne    0x41a013
41a008:	85 f6                	test   %esi,%esi
41a00a:	74 07                	je     0x41a013
41a00c:	56                   	push   %esi
41a00d:	e8 0c 19 00 00       	call   0x41b91e
41a012:	59                   	pop    %ecx
41a013:	5e                   	pop    %esi
41a014:	85 db                	test   %ebx,%ebx
41a016:	74 07                	je     0x41a01f
41a018:	53                   	push   %ebx
41a019:	e8 00 19 00 00       	call   0x41b91e
41a01e:	59                   	pop    %ecx
41a01f:	8b c7                	mov    %edi,%eax
41a021:	5f                   	pop    %edi
41a022:	5b                   	pop    %ebx
41a023:	c9                   	leave
41a024:	c3                   	ret
41a025:	8b ff                	mov    %edi,%edi
41a027:	55                   	push   %ebp
41a028:	8b ec                	mov    %esp,%ebp
41a02a:	51                   	push   %ecx
41a02b:	56                   	push   %esi
41a02c:	be ff 7f 00 00       	mov    $0x7fff,%esi
41a031:	57                   	push   %edi
41a032:	8b d6                	mov    %esi,%edx
41a034:	33 ff                	xor    %edi,%edi
41a036:	66 39 39             	cmp    %di,(%ecx)
41a039:	74 08                	je     0x41a043
41a03b:	83 c1 02             	add    $0x2,%ecx
41a03e:	83 ea 01             	sub    $0x1,%edx
41a041:	75 f3                	jne    0x41a036
41a043:	8b 4d 08             	mov    0x8(%ebp),%ecx
41a046:	8b c2                	mov    %edx,%eax
41a048:	f7 d8                	neg    %eax
41a04a:	1b c0                	sbb    %eax,%eax
41a04c:	25 f3 ff ff 3f       	and    $0x3ffffff3,%eax
41a051:	05 0d 00 00 c0       	add    $0xc000000d,%eax
41a056:	85 c9                	test   %ecx,%ecx
41a058:	74 0c                	je     0x41a066
41a05a:	85 d2                	test   %edx,%edx
41a05c:	74 06                	je     0x41a064
41a05e:	2b f2                	sub    %edx,%esi
41a060:	89 31                	mov    %esi,(%ecx)
41a062:	eb 02                	jmp    0x41a066
41a064:	89 39                	mov    %edi,(%ecx)
41a066:	5f                   	pop    %edi
41a067:	5e                   	pop    %esi
41a068:	c9                   	leave
41a069:	c2 04 00             	ret    $0x4
41a06c:	8b ff                	mov    %edi,%edi
41a06e:	55                   	push   %ebp
41a06f:	8b ec                	mov    %esp,%ebp
41a071:	85 d2                	test   %edx,%edx
41a073:	74 2b                	je     0x41a0a0
41a075:	8b 45 0c             	mov    0xc(%ebp),%eax
41a078:	56                   	push   %esi
41a079:	57                   	push   %edi
41a07a:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
41a07f:	2b c1                	sub    %ecx,%eax
41a081:	85 f6                	test   %esi,%esi
41a083:	74 15                	je     0x41a09a
41a085:	0f b7 3c 08          	movzwl (%eax,%ecx,1),%edi
41a089:	66 85 ff             	test   %di,%di
41a08c:	74 0c                	je     0x41a09a
41a08e:	66 89 39             	mov    %di,(%ecx)
41a091:	83 c1 02             	add    $0x2,%ecx
41a094:	4e                   	dec    %esi
41a095:	83 ea 01             	sub    $0x1,%edx
41a098:	75 e7                	jne    0x41a081
41a09a:	5f                   	pop    %edi
41a09b:	5e                   	pop    %esi
41a09c:	85 d2                	test   %edx,%edx
41a09e:	75 03                	jne    0x41a0a3
41a0a0:	83 e9 02             	sub    $0x2,%ecx
41a0a3:	f7 da                	neg    %edx
41a0a5:	1b d2                	sbb    %edx,%edx
41a0a7:	81 e2 fb ff ff 7f    	and    $0x7ffffffb,%edx
41a0ad:	33 c0                	xor    %eax,%eax
41a0af:	66 89 01             	mov    %ax,(%ecx)
41a0b2:	8d 82 05 00 00 80    	lea    -0x7ffffffb(%edx),%eax
41a0b8:	5d                   	pop    %ebp
41a0b9:	c2 0c 00             	ret    $0xc
41a0bc:	8b ff                	mov    %edi,%edi
41a0be:	55                   	push   %ebp
41a0bf:	8b ec                	mov    %esp,%ebp
41a0c1:	51                   	push   %ecx
41a0c2:	56                   	push   %esi
41a0c3:	8d 45 fc             	lea    -0x4(%ebp),%eax
41a0c6:	8b f1                	mov    %ecx,%esi
41a0c8:	50                   	push   %eax
41a0c9:	e8 57 ff ff ff       	call   0x41a025
41a0ce:	85 c0                	test   %eax,%eax
41a0d0:	78 17                	js     0x41a0e9
41a0d2:	8b 45 fc             	mov    -0x4(%ebp),%eax
41a0d5:	ba ff 7f 00 00       	mov    $0x7fff,%edx
41a0da:	51                   	push   %ecx
41a0db:	ff 75 08             	push   0x8(%ebp)
41a0de:	2b d0                	sub    %eax,%edx
41a0e0:	51                   	push   %ecx
41a0e1:	8d 0c 46             	lea    (%esi,%eax,2),%ecx
41a0e4:	e8 83 ff ff ff       	call   0x41a06c
41a0e9:	5e                   	pop    %esi
41a0ea:	c9                   	leave
41a0eb:	c2 04 00             	ret    $0x4
41a0ee:	8b ff                	mov    %edi,%edi
41a0f0:	56                   	push   %esi
41a0f1:	8b f1                	mov    %ecx,%esi
41a0f3:	8b 4e 18             	mov    0x18(%esi),%ecx
41a0f6:	85 c9                	test   %ecx,%ecx
41a0f8:	74 05                	je     0x41a0ff
41a0fa:	e8 94 0d 00 00       	call   0x41ae93
41a0ff:	8b 4e 20             	mov    0x20(%esi),%ecx
41a102:	85 c9                	test   %ecx,%ecx
41a104:	74 05                	je     0x41a10b
41a106:	e8 88 0d 00 00       	call   0x41ae93
41a10b:	8b 4e 34             	mov    0x34(%esi),%ecx
41a10e:	85 c9                	test   %ecx,%ecx
41a110:	74 05                	je     0x41a117
41a112:	e8 7c 0d 00 00       	call   0x41ae93
41a117:	8b 4e 3c             	mov    0x3c(%esi),%ecx
41a11a:	85 c9                	test   %ecx,%ecx
41a11c:	74 05                	je     0x41a123
41a11e:	e8 70 0d 00 00       	call   0x41ae93
41a123:	8b 4e 58             	mov    0x58(%esi),%ecx
41a126:	85 c9                	test   %ecx,%ecx
41a128:	74 05                	je     0x41a12f
41a12a:	e8 64 0d 00 00       	call   0x41ae93
41a12f:	68 90 00 00 00       	push   $0x90
41a134:	6a 00                	push   $0x0
41a136:	56                   	push   %esi
41a137:	e8 e5 24 00 00       	call   0x41c621
41a13c:	83 c4 0c             	add    $0xc,%esp
41a13f:	5e                   	pop    %esi
41a140:	c3                   	ret
41a141:	8b ff                	mov    %edi,%edi
41a143:	53                   	push   %ebx
41a144:	56                   	push   %esi