405c85:	ff 15 2c 34 47 00    	call   *0x47342c
405c8b:	85 f6                	test   %esi,%esi
405c8d:	74 07                	je     0x405c96
405c8f:	56                   	push   %esi
405c90:	ff 15 2c 34 47 00    	call   *0x47342c
405c96:	5f                   	pop    %edi
405c97:	5e                   	pop    %esi
405c98:	8b c3                	mov    %ebx,%eax
405c9a:	5b                   	pop    %ebx
405c9b:	5d                   	pop    %ebp
405c9c:	83 c4 08             	add    $0x8,%esp
405c9f:	c3                   	ret
405ca0:	83 ec 18             	sub    $0x18,%esp
405ca3:	8b 4c 24 24          	mov    0x24(%esp),%ecx
405ca7:	8b 54 24 20          	mov    0x20(%esp),%edx
405cab:	33 c0                	xor    %eax,%eax
405cad:	89 44 24 0c          	mov    %eax,0xc(%esp)
405cb1:	89 44 24 10          	mov    %eax,0x10(%esp)
405cb5:	89 44 24 14          	mov    %eax,0x14(%esp)
405cb9:	89 44 24 04          	mov    %eax,0x4(%esp)
405cbd:	89 44 24 08          	mov    %eax,0x8(%esp)
405cc1:	89 44 24 0c          	mov    %eax,0xc(%esp)
405cc5:	89 44 24 10          	mov    %eax,0x10(%esp)
405cc9:	89 44 24 14          	mov    %eax,0x14(%esp)
405ccd:	8d 04 24             	lea    (%esp),%eax
405cd0:	50                   	push   %eax
405cd1:	8b 44 24 20          	mov    0x20(%esp),%eax
405cd5:	51                   	push   %ecx
405cd6:	52                   	push   %edx
405cd7:	50                   	push   %eax
405cd8:	c7 44 24 10 01 00 00 	movl   $0x1,0x10(%esp)
405cdf:	00
405ce0:	c7 44 24 14 04 00 00 	movl   $0x4,0x14(%esp)
405ce7:	00
405ce8:	e8 23 fc ff ff       	call   0x405910
405ced:	83 c4 28             	add    $0x28,%esp
405cf0:	c3                   	ret
405cf1:	cc                   	int3
405cf2:	cc                   	int3
405cf3:	cc                   	int3
405cf4:	cc                   	int3
405cf5:	cc                   	int3
405cf6:	cc                   	int3
405cf7:	cc                   	int3
405cf8:	cc                   	int3
405cf9:	cc                   	int3
405cfa:	cc                   	int3
405cfb:	cc                   	int3
405cfc:	cc                   	int3
405cfd:	cc                   	int3
405cfe:	cc                   	int3
405cff:	cc                   	int3
405d00:	8b 54 24 04          	mov    0x4(%esp),%edx
405d04:	0f b7 0a             	movzwl (%edx),%ecx
405d07:	33 c0                	xor    %eax,%eax
405d09:	66 85 c9             	test   %cx,%cx
405d0c:	74 2c                	je     0x405d3a
405d0e:	56                   	push   %esi
405d0f:	66 8b 74 24 10       	mov    0x10(%esp),%si
405d14:	57                   	push   %edi
405d15:	66 8b 7c 24 10       	mov    0x10(%esp),%di
405d1a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
405d20:	66 3b cf             	cmp    %di,%cx
405d23:	74 05                	je     0x405d2a
405d25:	66 3b ce             	cmp    %si,%cx
405d28:	75 02                	jne    0x405d2c
405d2a:	8b c2                	mov    %edx,%eax
405d2c:	0f b7 4a 02          	movzwl 0x2(%edx),%ecx
405d30:	83 c2 02             	add    $0x2,%edx
405d33:	66 85 c9             	test   %cx,%cx
405d36:	75 e8                	jne    0x405d20
405d38:	5f                   	pop    %edi
405d39:	5e                   	pop    %esi
405d3a:	c3                   	ret
405d3b:	cc                   	int3
405d3c:	cc                   	int3
405d3d:	cc                   	int3
405d3e:	cc                   	int3
405d3f:	cc                   	int3
405d40:	56                   	push   %esi
405d41:	8b 74 24 08          	mov    0x8(%esp),%esi
405d45:	6a 2f                	push   $0x2f
405d47:	6a 5c                	push   $0x5c
405d49:	56                   	push   %esi
405d4a:	e8 b1 ff ff ff       	call   0x405d00
405d4f:	83 c4 0c             	add    $0xc,%esp
405d52:	85 c0                	test   %eax,%eax
405d54:	75 04                	jne    0x405d5a
405d56:	8b c6                	mov    %esi,%eax
405d58:	5e                   	pop    %esi
405d59:	c3                   	ret
405d5a:	83 c0 02             	add    $0x2,%eax
405d5d:	5e                   	pop    %esi
405d5e:	c3                   	ret
405d5f:	cc                   	int3
405d60:	8b 44 24 0c          	mov    0xc(%esp),%eax
405d64:	55                   	push   %ebp
405d65:	56                   	push   %esi
405d66:	57                   	push   %edi
405d67:	8b 7c 24 14          	mov    0x14(%esp),%edi
405d6b:	8d 6c 47 fe          	lea    -0x2(%edi,%eax,2),%ebp
405d6f:	8b 44 24 10          	mov    0x10(%esp),%eax
405d73:	66 83 38 22          	cmpw   $0x22,(%eax)
405d77:	75 19                	jne    0x405d92
405d79:	83 c0 02             	add    $0x2,%eax
405d7c:	6a 22                	push   $0x22
405d7e:	50                   	push   %eax
405d7f:	e8 37 b1 02 00       	call   0x430ebb
405d84:	8b f0                	mov    %eax,%esi
405d86:	83 c4 08             	add    $0x8,%esp
405d89:	85 f6                	test   %esi,%esi
405d8b:	74 16                	je     0x405da3
405d8d:	83 c6 02             	add    $0x2,%esi
405d90:	eb 0d                	jmp    0x405d9f
405d92:	6a 20                	push   $0x20
405d94:	50                   	push   %eax
405d95:	e8 21 b1 02 00       	call   0x430ebb
405d9a:	83 c4 08             	add    $0x8,%esp
405d9d:	8b f0                	mov    %eax,%esi
405d9f:	85 f6                	test   %esi,%esi
405da1:	75 0b                	jne    0x405dae
405da3:	33 c9                	xor    %ecx,%ecx
405da5:	66 89 0f             	mov    %cx,(%edi)
405da8:	5f                   	pop    %edi
405da9:	5e                   	pop    %esi
405daa:	32 c0                	xor    %al,%al
405dac:	5d                   	pop    %ebp
405dad:	c3                   	ret
405dae:	53                   	push   %ebx
405daf:	8a 5c 24 20          	mov    0x20(%esp),%bl
405db3:	0f b7 06             	movzwl (%esi),%eax
405db6:	66 85 c0             	test   %ax,%ax
405db9:	0f 84 b6 00 00 00    	je     0x405e75
405dbf:	90                   	nop
405dc0:	68 07 01 00 00       	push   $0x107
405dc5:	50                   	push   %eax
405dc6:	e8 1a ca 02 00       	call   0x4327e5
405dcb:	83 c4 08             	add    $0x8,%esp
405dce:	85 c0                	test   %eax,%eax
405dd0:	75 1d                	jne    0x405def
405dd2:	0f b7 46 02          	movzwl 0x2(%esi),%eax
405dd6:	83 c6 02             	add    $0x2,%esi
405dd9:	66 85 c0             	test   %ax,%ax
405ddc:	75 e2                	jne    0x405dc0
405dde:	33 c0                	xor    %eax,%eax
405de0:	3b 7c 24 18          	cmp    0x18(%esp),%edi
405de4:	5b                   	pop    %ebx
405de5:	66 89 07             	mov    %ax,(%edi)
405de8:	5f                   	pop    %edi
405de9:	5e                   	pop    %esi
405dea:	0f 95 c0             	setne  %al
405ded:	5d                   	pop    %ebp
405dee:	c3                   	ret
405def:	0f b7 06             	movzwl (%esi),%eax
405df2:	66 85 c0             	test   %ax,%ax
405df5:	74 7e                	je     0x405e75
405df7:	84 db                	test   %bl,%bl
405df9:	75 35                	jne    0x405e30
405dfb:	eb 03                	jmp    0x405e00
405dfd:	8d 49 00             	lea    0x0(%ecx),%ecx
405e00:	68 07 01 00 00       	push   $0x107
405e05:	50                   	push   %eax
405e06:	e8 da c9 02 00       	call   0x4327e5
405e0b:	83 c4 08             	add    $0x8,%esp
405e0e:	85 c0                	test   %eax,%eax
405e10:	74 0c                	je     0x405e1e
405e12:	0f b7 46 02          	movzwl 0x2(%esi),%eax
405e16:	83 c6 02             	add    $0x2,%esi
405e19:	66 85 c0             	test   %ax,%ax
405e1c:	75 e2                	jne    0x405e00
405e1e:	0f b7 06             	movzwl (%esi),%eax
405e21:	b3 01                	mov    $0x1,%bl
405e23:	66 85 c0             	test   %ax,%ax
405e26:	74 4d                	je     0x405e75
405e28:	eb 06                	jmp    0x405e30
405e2a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
405e30:	68 07 01 00 00       	push   $0x107
405e35:	50                   	push   %eax
405e36:	e8 aa c9 02 00       	call   0x4327e5
405e3b:	83 c4 08             	add    $0x8,%esp
405e3e:	85 c0                	test   %eax,%eax
405e40:	74 29                	je     0x405e6b
405e42:	3b fd                	cmp    %ebp,%edi
405e44:	74 2f                	je     0x405e75
405e46:	66 8b 16             	mov    (%esi),%dx
405e49:	83 c6 02             	add    $0x2,%esi
405e4c:	66 89 17             	mov    %dx,(%edi)
405e4f:	0f b7 06             	movzwl (%esi),%eax
405e52:	83 c7 02             	add    $0x2,%edi
405e55:	66 85 c0             	test   %ax,%ax
405e58:	75 d6                	jne    0x405e30
405e5a:	33 c0                	xor    %eax,%eax
405e5c:	3b 7c 24 18          	cmp    0x18(%esp),%edi
405e60:	5b                   	pop    %ebx
405e61:	66 89 07             	mov    %ax,(%edi)
405e64:	5f                   	pop    %edi
405e65:	5e                   	pop    %esi
405e66:	0f 95 c0             	setne  %al
405e69:	5d                   	pop    %ebp
405e6a:	c3                   	ret
405e6b:	66 83 3e 00          	cmpw   $0x0,(%esi)
405e6f:	0f 85 3e ff ff ff    	jne    0x405db3
405e75:	33 c0                	xor    %eax,%eax
405e77:	3b 7c 24 18          	cmp    0x18(%esp),%edi
405e7b:	5b                   	pop    %ebx
405e7c:	66 89 07             	mov    %ax,(%edi)
405e7f:	5f                   	pop    %edi
405e80:	5e                   	pop    %esi
405e81:	0f 95 c0             	setne  %al
405e84:	5d                   	pop    %ebp
405e85:	c3                   	ret
405e86:	cc                   	int3
405e87:	cc                   	int3
405e88:	cc                   	int3
405e89:	cc                   	int3
405e8a:	cc                   	int3
405e8b:	cc                   	int3
405e8c:	cc                   	int3
405e8d:	cc                   	int3
405e8e:	cc                   	int3
405e8f:	cc                   	int3
405e90:	57                   	push   %edi
405e91:	8b 7c 24 08          	mov    0x8(%esp),%edi
405e95:	85 ff                	test   %edi,%edi
405e97:	74 4b                	je     0x405ee4
405e99:	8b c7                	mov    %edi,%eax
405e9b:	56                   	push   %esi
405e9c:	33 d2                	xor    %edx,%edx
405e9e:	8d 70 02             	lea    0x2(%eax),%esi
405ea1:	66 8b 08             	mov    (%eax),%cx
405ea4:	83 c0 02             	add    $0x2,%eax
405ea7:	66 85 c9             	test   %cx,%cx
405eaa:	75 f5                	jne    0x405ea1
405eac:	2b c6                	sub    %esi,%eax
405eae:	d1 f8                	sar    $1,%eax
405eb0:	74 31                	je     0x405ee3
405eb2:	b8 3a 00 00 00       	mov    $0x3a,%eax
405eb7:	66 3b 04 57          	cmp    (%edi,%edx,2),%ax
405ebb:	75 09                	jne    0x405ec6
405ebd:	b9 5c 00 00 00       	mov    $0x5c,%ecx
405ec2:	66 89 0c 57          	mov    %cx,(%edi,%edx,2)
405ec6:	8b c7                	mov    %edi,%eax
405ec8:	42                   	inc    %edx
405ec9:	8d 70 02             	lea    0x2(%eax),%esi
405ecc:	8d 64 24 00          	lea    0x0(%esp),%esp
405ed0:	66 8b 08             	mov    (%eax),%cx
405ed3:	83 c0 02             	add    $0x2,%eax
405ed6:	66 85 c9             	test   %cx,%cx
405ed9:	75 f5                	jne    0x405ed0
405edb:	2b c6                	sub    %esi,%eax
405edd:	d1 f8                	sar    $1,%eax
405edf:	3b d0                	cmp    %eax,%edx
405ee1:	72 cf                	jb     0x405eb2
405ee3:	5e                   	pop    %esi
405ee4:	5f                   	pop    %edi
405ee5:	c3                   	ret
405ee6:	cc                   	int3
405ee7:	cc                   	int3
405ee8:	cc                   	int3
405ee9:	cc                   	int3
405eea:	cc                   	int3
405eeb:	cc                   	int3
405eec:	cc                   	int3
405eed:	cc                   	int3
405eee:	cc                   	int3
405eef:	cc                   	int3
405ef0:	8b 44 24 0c          	mov    0xc(%esp),%eax
405ef4:	81 ec 08 02 00 00    	sub    $0x208,%esp
405efa:	56                   	push   %esi
405efb:	8b b4 24 14 02 00 00 	mov    0x214(%esp),%esi
405f02:	85 c0                	test   %eax,%eax
405f04:	75 11                	jne    0x405f17
405f06:	68 04 01 00 00       	push   $0x104
405f0b:	68 34 c9 45 00       	push   $0x45c934
405f10:	8d 44 24 0c          	lea    0xc(%esp),%eax
405f14:	50                   	push   %eax
405f15:	eb 37                	jmp    0x405f4e
405f17:	85 f6                	test   %esi,%esi
405f19:	75 28                	jne    0x405f43
405f1b:	39 b4 24 1c 02 00 00 	cmp    %esi,0x21c(%esp)
405f22:	75 1f                	jne    0x405f43
405f24:	50                   	push   %eax
405f25:	68 34 c9 45 00       	push   $0x45c934
405f2a:	68 0c c2 45 00       	push   $0x45c20c
405f2f:	8d 4c 24 10          	lea    0x10(%esp),%ecx
405f33:	68 04 01 00 00       	push   $0x104
405f38:	51                   	push   %ecx
405f39:	e8 21 a7 02 00       	call   0x43065f
405f3e:	83 c4 14             	add    $0x14,%esp
405f41:	eb 13                	jmp    0x405f56
405f43:	68 04 01 00 00       	push   $0x104
405f48:	50                   	push   %eax
405f49:	8d 54 24 0c          	lea    0xc(%esp),%edx
405f4d:	52                   	push   %edx
405f4e:	e8 57 ab 02 00       	call   0x430aaa
405f53:	83 c4 0c             	add    $0xc,%esp
405f56:	8d 44 24 04          	lea    0x4(%esp),%eax
405f5a:	50                   	push   %eax
405f5b:	e8 30 ff ff ff       	call   0x405e90
405f60:	83 c4 04             	add    $0x4,%esp
405f63:	85 f6                	test   %esi,%esi
405f65:	75 05                	jne    0x405f6c
405f67:	be 02 00 00 80       	mov    $0x80000002,%esi
405f6c:	8b 8c 24 10 02 00 00 	mov    0x210(%esp),%ecx
405f73:	6a 00                	push   $0x0
405f75:	51                   	push   %ecx
405f76:	6a 00                	push   $0x0
405f78:	e8 93 cf ff ff       	call   0x402f10
405f7d:	0b 84 24 2c 02 00 00 	or     0x22c(%esp),%eax
405f84:	8d 54 24 10          	lea    0x10(%esp),%edx
405f88:	50                   	push   %eax
405f89:	6a 00                	push   $0x0
405f8b:	6a 00                	push   $0x0
405f8d:	6a 00                	push   $0x0
405f8f:	52                   	push   %edx
405f90:	56                   	push   %esi
405f91:	ff 15 6c 33 47 00    	call   *0x47336c
405f97:	5e                   	pop    %esi
405f98:	81 c4 08 02 00 00    	add    $0x208,%esp
405f9e:	c3                   	ret
405f9f:	cc                   	int3
405fa0:	8b 44 24 08          	mov    0x8(%esp),%eax
405fa4:	85 c0                	test   %eax,%eax
405fa6:	75 01                	jne    0x405fa9
405fa8:	c3                   	ret
405fa9:	56                   	push   %esi
405faa:	8b 70 04             	mov    0x4(%eax),%esi
405fad:	57                   	push   %edi
405fae:	85 f6                	test   %esi,%esi
405fb0:	74 1b                	je     0x405fcd
405fb2:	8b 7c 24 0c          	mov    0xc(%esp),%edi
405fb6:	8b 46 14             	mov    0x14(%esi),%eax
405fb9:	50                   	push   %eax
405fba:	57                   	push   %edi
405fbb:	e8 d7 d5 02 00       	call   0x433597
405fc0:	83 c4 08             	add    $0x8,%esp
405fc3:	85 c0                	test   %eax,%eax
405fc5:	74 0b                	je     0x405fd2
405fc7:	8b 36                	mov    (%esi),%esi
405fc9:	85 f6                	test   %esi,%esi
405fcb:	75 e9                	jne    0x405fb6
405fcd:	5f                   	pop    %edi
405fce:	33 c0                	xor    %eax,%eax
405fd0:	5e                   	pop    %esi
405fd1:	c3                   	ret
405fd2:	5f                   	pop    %edi
405fd3:	8b c6                	mov    %esi,%eax
405fd5:	5e                   	pop    %esi
405fd6:	c3                   	ret
405fd7:	cc                   	int3