408b6f:	83 67 08 00          	andl   $0x0,0x8(%edi)
408b73:	8b cf                	mov    %edi,%ecx
408b75:	e8 46 0f 00 00       	call   0x409ac0
408b7a:	83 66 1c 00          	andl   $0x0,0x1c(%esi)
408b7e:	83 66 18 00          	andl   $0x0,0x18(%esi)
408b82:	89 7e 14             	mov    %edi,0x14(%esi)
408b85:	ff 33                	push   (%ebx)
408b87:	56                   	push   %esi
408b88:	e8 33 fc ff ff       	call   0x4087c0
408b8d:	89 03                	mov    %eax,(%ebx)
408b8f:	5f                   	pop    %edi
408b90:	8b 46 14             	mov    0x14(%esi),%eax
408b93:	5e                   	pop    %esi
408b94:	5b                   	pop    %ebx
408b95:	5d                   	pop    %ebp
408b96:	c2 0c 00             	ret    $0xc
408b99:	8b 33                	mov    (%ebx),%esi
408b9b:	eb 8c                	jmp    0x408b29
408b9d:	ff 75 0c             	push   0xc(%ebp)
408ba0:	8b 4e 14             	mov    0x14(%esi),%ecx
408ba3:	e8 f4 12 00 00       	call   0x409e9c
408ba8:	eb e6                	jmp    0x408b90
408baa:	33 f6                	xor    %esi,%esi
408bac:	eb 9e                	jmp    0x408b4c
408bae:	33 ff                	xor    %edi,%edi
408bb0:	eb c8                	jmp    0x408b7a
408bb2:	55                   	push   %ebp
408bb3:	8b ec                	mov    %esp,%ebp
408bb5:	ff 75 08             	push   0x8(%ebp)
408bb8:	e8 38 ff ff ff       	call   0x408af5
408bbd:	85 c0                	test   %eax,%eax
408bbf:	75 04                	jne    0x408bc5
408bc1:	5d                   	pop    %ebp
408bc2:	c2 08 00             	ret    $0x8
408bc5:	8b 50 10             	mov    0x10(%eax),%edx
408bc8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408bcb:	81 e2 00 ff 00 00    	and    $0xff00,%edx
408bd1:	8b 40 14             	mov    0x14(%eax),%eax
408bd4:	89 11                	mov    %edx,(%ecx)
408bd6:	eb e9                	jmp    0x408bc1
408bd8:	55                   	push   %ebp
408bd9:	8b ec                	mov    %esp,%ebp
408bdb:	83 ec 44             	sub    $0x44,%esp
408bde:	53                   	push   %ebx
408bdf:	56                   	push   %esi
408be0:	57                   	push   %edi
408be1:	8b f9                	mov    %ecx,%edi
408be3:	8b f2                	mov    %edx,%esi
408be5:	89 75 fc             	mov    %esi,-0x4(%ebp)
408be8:	8b 57 0c             	mov    0xc(%edi),%edx
408beb:	8b c2                	mov    %edx,%eax
408bed:	8b 4e 0c             	mov    0xc(%esi),%ecx
408bf0:	c1 e0 04             	shl    $0x4,%eax
408bf3:	03 c1                	add    %ecx,%eax
408bf5:	8b 04 85 38 4f 4a 00 	mov    0x4a4f38(,%eax,4),%eax
408bfc:	48                   	dec    %eax
408bfd:	83 f8 0d             	cmp    $0xd,%eax
408c00:	0f 87 8b 00 00 00    	ja     0x408c91
408c06:	ff 24 85 98 8c 40 00 	jmp    *0x408c98(,%eax,4)
408c0d:	8b cf                	mov    %edi,%ecx
408c0f:	e8 88 10 00 00       	call   0x409c9c
408c14:	8b ce                	mov    %esi,%ecx
408c16:	8b d8                	mov    %eax,%ebx
408c18:	e8 7f 10 00 00       	call   0x409c9c
408c1d:	2b d8                	sub    %eax,%ebx
408c1f:	f7 db                	neg    %ebx
408c21:	1b db                	sbb    %ebx,%ebx
408c23:	43                   	inc    %ebx
408c24:	8a c3                	mov    %bl,%al
408c26:	5f                   	pop    %edi
408c27:	5e                   	pop    %esi
408c28:	5b                   	pop    %ebx
408c29:	8b e5                	mov    %ebp,%esp
408c2b:	5d                   	pop    %ebp
408c2c:	c3                   	ret
408c2d:	8b cf                	mov    %edi,%ecx
408c2f:	e8 1f 10 00 00       	call   0x409c53
408c34:	8b ce                	mov    %esi,%ecx
408c36:	8a d0                	mov    %al,%dl
408c38:	e8 16 10 00 00       	call   0x409c53
408c3d:	33 c9                	xor    %ecx,%ecx
408c3f:	3a d0                	cmp    %al,%dl
408c41:	0f 94 c1             	sete   %cl
408c44:	8a c1                	mov    %cl,%al
408c46:	eb de                	jmp    0x408c26
408c48:	8b cf                	mov    %edi,%ecx
408c4a:	e8 a9 10 00 00       	call   0x409cf8
408c4f:	dd 5d f8             	fstpl  -0x8(%ebp)
408c52:	8b ce                	mov    %esi,%ecx
408c54:	e8 9f 10 00 00       	call   0x409cf8
408c59:	dd 45 f8             	fldl   -0x8(%ebp)
408c5c:	da e9                	fucompp
408c5e:	df e0                	fnstsw %ax
408c60:	f6 c4 44             	test   $0x44,%ah
408c63:	7b 27                	jnp    0x408c8c
408c65:	33 c0                	xor    %eax,%eax
408c67:	eb bd                	jmp    0x408c26
408c69:	8b ce                	mov    %esi,%ecx
408c6b:	e8 27 0d 00 00       	call   0x409997
408c70:	8b 76 08             	mov    0x8(%esi),%esi
408c73:	8b cf                	mov    %edi,%ecx
408c75:	e8 1d 0d 00 00       	call   0x409997
408c7a:	8b 4f 08             	mov    0x8(%edi),%ecx
408c7d:	6a 00                	push   $0x0
408c7f:	56                   	push   %esi
408c80:	e8 e3 ed ff ff       	call   0x407a68
408c85:	f7 d8                	neg    %eax
408c87:	1b c0                	sbb    %eax,%eax
408c89:	40                   	inc    %eax
408c8a:	eb 9a                	jmp    0x408c26
408c8c:	33 c0                	xor    %eax,%eax
408c8e:	40                   	inc    %eax
408c8f:	eb 95                	jmp    0x408c26
408c91:	32 c0                	xor    %al,%al
408c93:	eb 91                	jmp    0x408c26
408c95:	8d 49 00             	lea    0x0(%ecx),%ecx
408c98:	0d 8c 40 00 34       	or     $0x3400408c,%eax
408c9d:	f3 43                	repz inc %ebx
408c9f:	00 48 8c             	add    %cl,-0x74(%eax)
408ca2:	40                   	inc    %eax
408ca3:	00 69 8c             	add    %ch,-0x74(%ecx)
408ca6:	40                   	inc    %eax
408ca7:	00 91 8c 40 00 91    	add    %dl,-0x6effbf74(%ecx)
408cad:	8c 40 00             	mov    %es,0x0(%eax)
408cb0:	5c                   	pop    %esp
408cb1:	f3 43                	repz inc %ebx
408cb3:	00 a1 f3 43 00 2d    	add    %ah,0x2d0043f3(%ecx)
408cb9:	8c 40 00             	mov    %es,0x0(%eax)
408cbc:	71 f3                	jno    0x408cb1
408cbe:	43                   	inc    %ebx
408cbf:	00 f6                	add    %dh,%dh
408cc1:	f3 43                	repz inc %ebx
408cc3:	00 91 8c 40 00 83    	add    %dl,-0x7cffbf74(%ecx)
408cc9:	f3 43                	repz inc %ebx
408ccb:	00 b5 f4 43 00 55    	add    %dh,0x550043f4(%ebp)
408cd1:	8b ec                	mov    %esp,%ebp
408cd3:	51                   	push   %ecx
408cd4:	51                   	push   %ecx
408cd5:	53                   	push   %ebx
408cd6:	8b d9                	mov    %ecx,%ebx
408cd8:	56                   	push   %esi
408cd9:	57                   	push   %edi
408cda:	8b fa                	mov    %edx,%edi
408cdc:	8b 43 0c             	mov    0xc(%ebx),%eax
408cdf:	c1 e0 04             	shl    $0x4,%eax
408ce2:	03 47 0c             	add    0xc(%edi),%eax
408ce5:	8b 04 85 38 4f 4a 00 	mov    0x4a4f38(,%eax,4),%eax
408cec:	48                   	dec    %eax
408ced:	74 30                	je     0x408d1f
408cef:	48                   	dec    %eax
408cf0:	0f 84 4f 68 03 00    	je     0x43f545
408cf6:	48                   	dec    %eax
408cf7:	0f 85 f0 67 03 00    	jne    0x43f4ed
408cfd:	e8 f6 0f 00 00       	call   0x409cf8
408d02:	dd 5d f8             	fstpl  -0x8(%ebp)
408d05:	8b cf                	mov    %edi,%ecx
408d07:	e8 ec 0f 00 00       	call   0x409cf8
408d0c:	dc 5d f8             	fcompl -0x8(%ebp)
408d0f:	df e0                	fnstsw %ax
408d11:	f6 c4 41             	test   $0x41,%ah
408d14:	74 20                	je     0x408d36
408d16:	33 c0                	xor    %eax,%eax
408d18:	5f                   	pop    %edi
408d19:	5e                   	pop    %esi
408d1a:	5b                   	pop    %ebx
408d1b:	8b e5                	mov    %ebp,%esp
408d1d:	5d                   	pop    %ebp
408d1e:	c3                   	ret
408d1f:	e8 78 0f 00 00       	call   0x409c9c
408d24:	8b cf                	mov    %edi,%ecx
408d26:	8b f0                	mov    %eax,%esi
408d28:	e8 6f 0f 00 00       	call   0x409c9c
408d2d:	33 c9                	xor    %ecx,%ecx
408d2f:	3b f0                	cmp    %eax,%esi
408d31:	0f 9c c0             	setl   %al
408d34:	eb e2                	jmp    0x408d18
408d36:	33 c0                	xor    %eax,%eax
408d38:	40                   	inc    %eax
408d39:	eb dd                	jmp    0x408d18
408d3b:	55                   	push   %ebp
408d3c:	8b ec                	mov    %esp,%ebp
408d3e:	51                   	push   %ecx
408d3f:	53                   	push   %ebx
408d40:	56                   	push   %esi
408d41:	57                   	push   %edi
408d42:	8b d9                	mov    %ecx,%ebx
408d44:	68 14 02 00 00       	push   $0x214
408d49:	89 5d fc             	mov    %ebx,-0x4(%ebp)
408d4c:	e8 a5 82 01 00       	call   0x420ff6
408d51:	8b 7d 08             	mov    0x8(%ebp),%edi
408d54:	8b f0                	mov    %eax,%esi
408d56:	59                   	pop    %ecx
408d57:	8b 17                	mov    (%edi),%edx
408d59:	8b 52 08             	mov    0x8(%edx),%edx
408d5c:	89 56 08             	mov    %edx,0x8(%esi)
408d5f:	33 d2                	xor    %edx,%edx
408d61:	8b 0f                	mov    (%edi),%ecx
408d63:	8b 89 0c 01 00 00    	mov    0x10c(%ecx),%ecx
408d69:	89 8e 0c 01 00 00    	mov    %ecx,0x10c(%esi)
408d6f:	85 c9                	test   %ecx,%ecx
408d71:	7e 1c                	jle    0x408d8f
408d73:	6a 0c                	push   $0xc
408d75:	59                   	pop    %ecx
408d76:	6a 04                	push   $0x4
408d78:	5b                   	pop    %ebx
408d79:	8b 07                	mov    (%edi),%eax
408d7b:	42                   	inc    %edx
408d7c:	8b 04 01             	mov    (%ecx,%eax,1),%eax
408d7f:	89 04 31             	mov    %eax,(%ecx,%esi,1)
408d82:	03 cb                	add    %ebx,%ecx
408d84:	3b 96 0c 01 00 00    	cmp    0x10c(%esi),%edx
408d8a:	7c ed                	jl     0x408d79
408d8c:	8b 5d fc             	mov    -0x4(%ebp),%ebx
408d8f:	8b 07                	mov    (%edi),%eax
408d91:	33 d2                	xor    %edx,%edx
408d93:	8b 80 10 02 00 00    	mov    0x210(%eax),%eax
408d99:	89 86 10 02 00 00    	mov    %eax,0x210(%esi)
408d9f:	85 c0                	test   %eax,%eax
408da1:	7e 1e                	jle    0x408dc1
408da3:	6a 04                	push   $0x4
408da5:	b9 10 01 00 00       	mov    $0x110,%ecx
408daa:	5b                   	pop    %ebx
408dab:	8b 07                	mov    (%edi),%eax
408dad:	42                   	inc    %edx
408dae:	8b 04 01             	mov    (%ecx,%eax,1),%eax
408db1:	89 04 31             	mov    %eax,(%ecx,%esi,1)
408db4:	03 cb                	add    %ebx,%ecx
408db6:	3b 96 10 02 00 00    	cmp    0x210(%esi),%edx
408dbc:	7c ed                	jl     0x408dab
408dbe:	8b 5d fc             	mov    -0x4(%ebp),%ebx
408dc1:	8b 07                	mov    (%edi),%eax
408dc3:	33 c9                	xor    %ecx,%ecx
408dc5:	6a 04                	push   $0x4
408dc7:	5a                   	pop    %edx
408dc8:	8b 78 04             	mov    0x4(%eax),%edi
408dcb:	89 33                	mov    %esi,(%ebx)
408dcd:	8b 46 08             	mov    0x8(%esi),%eax
408dd0:	f7 e2                	mul    %edx
408dd2:	0f 90 c1             	seto   %cl
408dd5:	f7 d9                	neg    %ecx
408dd7:	0b c8                	or     %eax,%ecx
408dd9:	51                   	push   %ecx
408dda:	e8 17 82 01 00       	call   0x420ff6
408ddf:	59                   	pop    %ecx
408de0:	8b 0b                	mov    (%ebx),%ecx
408de2:	33 f6                	xor    %esi,%esi
408de4:	89 41 04             	mov    %eax,0x4(%ecx)
408de7:	8b 03                	mov    (%ebx),%eax
408de9:	39 70 08             	cmp    %esi,0x8(%eax)
408dec:	7e 2e                	jle    0x408e1c
408dee:	83 3c b7 00          	cmpl   $0x0,(%edi,%esi,4)
408df2:	74 35                	je     0x408e29
408df4:	6a 10                	push   $0x10
408df6:	e8 fb 81 01 00       	call   0x420ff6
408dfb:	59                   	pop    %ecx
408dfc:	85 c0                	test   %eax,%eax
408dfe:	74 25                	je     0x408e25
408e00:	ff 34 b7             	push   (%edi,%esi,4)
408e03:	8b c8                	mov    %eax,%ecx
408e05:	e8 c1 0f 00 00       	call   0x409dcb
408e0a:	8b c8                	mov    %eax,%ecx
408e0c:	8b 03                	mov    (%ebx),%eax
408e0e:	8b 40 04             	mov    0x4(%eax),%eax
408e11:	89 0c b0             	mov    %ecx,(%eax,%esi,4)
408e14:	8b 03                	mov    (%ebx),%eax
408e16:	46                   	inc    %esi
408e17:	3b 70 08             	cmp    0x8(%eax),%esi
408e1a:	7c d2                	jl     0x408dee
408e1c:	5f                   	pop    %edi
408e1d:	5e                   	pop    %esi
408e1e:	5b                   	pop    %ebx
408e1f:	8b e5                	mov    %ebp,%esp
408e21:	5d                   	pop    %ebp
408e22:	c2 04 00             	ret    $0x4
408e25:	33 c9                	xor    %ecx,%ecx
408e27:	eb e3                	jmp    0x408e0c
408e29:	8b 03                	mov    (%ebx),%eax
408e2b:	8b 40 04             	mov    0x4(%eax),%eax
408e2e:	83 24 b0 00          	andl   $0x0,(%eax,%esi,4)
408e32:	eb e0                	jmp    0x408e14
408e34:	56                   	push   %esi
408e35:	8b f1                	mov    %ecx,%esi
408e37:	e8 46 05 00 00       	call   0x409382
408e3c:	84 c0                	test   %al,%al
408e3e:	74 25                	je     0x408e65
408e40:	8b ce                	mov    %esi,%ecx
408e42:	e8 79 04 00 00       	call   0x4092c0
408e47:	8b 06                	mov    (%esi),%eax
408e49:	83 a0 10 02 00 00 00 	andl   $0x0,0x210(%eax)
408e50:	ff 36                	push   (%esi)
408e52:	e8 15 82 01 00       	call   0x42106c
408e57:	59                   	pop    %ecx
408e58:	56                   	push   %esi
408e59:	e8 0e 82 01 00       	call   0x42106c
408e5e:	59                   	pop    %ecx
408e5f:	8b c6                	mov    %esi,%eax
408e61:	5e                   	pop    %esi
408e62:	c2 04 00             	ret    $0x4
408e65:	8b 06                	mov    (%esi),%eax
408e67:	ff 08                	decl   (%eax)
408e69:	eb ed                	jmp    0x408e58
408e6b:	55                   	push   %ebp
408e6c:	8b ec                	mov    %esp,%ebp
408e6e:	8b 45 08             	mov    0x8(%ebp),%eax
408e71:	85 c0                	test   %eax,%eax
408e73:	75 0c                	jne    0x408e81
408e75:	8b 01                	mov    (%ecx),%eax
408e77:	8b 80 0c 01 00 00    	mov    0x10c(%eax),%eax
408e7d:	5d                   	pop    %ebp
408e7e:	c2 04 00             	ret    $0x4
408e81:	78 10                	js     0x408e93
408e83:	8b 09                	mov    (%ecx),%ecx
408e85:	3b 81 0c 01 00 00    	cmp    0x10c(%ecx),%eax
408e8b:	7f 06                	jg     0x408e93
408e8d:	8b 44 81 08          	mov    0x8(%ecx,%eax,4),%eax
408e91:	eb ea                	jmp    0x408e7d
408e93:	33 c0                	xor    %eax,%eax
408e95:	eb e6                	jmp    0x408e7d
408e97:	cc                   	int3
408e98:	cc                   	int3
408e99:	cc                   	int3
408e9a:	cc                   	int3
408e9b:	cc                   	int3
408e9c:	cc                   	int3
408e9d:	cc                   	int3
408e9e:	cc                   	int3
408e9f:	cc                   	int3
408ea0:	55                   	push   %ebp
408ea1:	8b ec                	mov    %esp,%ebp
408ea3:	53                   	push   %ebx
408ea4:	56                   	push   %esi
408ea5:	8b 75 0c             	mov    0xc(%ebp),%esi
408ea8:	57                   	push   %edi
408ea9:	83 fe 02             	cmp    $0x2,%esi
408eac:	0f 84 e5 00 00 00    	je     0x408f97
408eb2:	83 fe 04             	cmp    $0x4,%esi
408eb5:	0f 84 dc 00 00 00    	je     0x408f97
408ebb:	8b 5d 08             	mov    0x8(%ebp),%ebx
408ebe:	8b 75 10             	mov    0x10(%ebp),%esi
408ec1:	85 f6                	test   %esi,%esi
408ec3:	0f 85 b2 66 03 00    	jne    0x43f57b
408ec9:	8b 3b                	mov    (%ebx),%edi
408ecb:	89 7d 0c             	mov    %edi,0xc(%ebp)
408ece:	8b 57 08             	mov    0x8(%edi),%edx
408ed1:	85 d2                	test   %edx,%edx
408ed3:	0f 84 5f 01 00 00    	je     0x409038
408ed9:	8b b7 0c 01 00 00    	mov    0x10c(%edi),%esi
408edf:	3b b7 10 02 00 00    	cmp    0x210(%edi),%esi
408ee5:	0f 85 4d 01 00 00    	jne    0x409038
408eeb:	33 c9                	xor    %ecx,%ecx