420c90:	55                   	push   %ebp
420c91:	8b ec                	mov    %esp,%ebp
420c93:	53                   	push   %ebx
420c94:	56                   	push   %esi
420c95:	8b 75 08             	mov    0x8(%ebp),%esi
420c98:	33 db                	xor    %ebx,%ebx
420c9a:	57                   	push   %edi
420c9b:	6a 02                	push   $0x2
420c9d:	5a                   	pop    %edx
420c9e:	8b 0e                	mov    (%esi),%ecx
420ca0:	8d 79 02             	lea    0x2(%ecx),%edi
420ca3:	66 8b 01             	mov    (%ecx),%ax
420ca6:	03 ca                	add    %edx,%ecx
420ca8:	66 3b c3             	cmp    %bx,%ax
420cab:	75 f6                	jne    0x420ca3
420cad:	2b cf                	sub    %edi,%ecx
420caf:	33 c0                	xor    %eax,%eax
420cb1:	d1 f9                	sar    $1,%ecx
420cb3:	83 f9 03             	cmp    $0x3,%ecx
420cb6:	0f 94 c0             	sete   %al
420cb9:	89 46 10             	mov    %eax,0x10(%esi)
420cbc:	85 c0                	test   %eax,%eax
420cbe:	75 0a                	jne    0x420cca
420cc0:	ff 36                	push   (%esi)
420cc2:	e8 22 00 00 00       	call   0x420ce9
420cc7:	59                   	pop    %ecx
420cc8:	8b d0                	mov    %eax,%edx
420cca:	53                   	push   %ebx
420ccb:	53                   	push   %ebx
420ccc:	6a 03                	push   $0x3
420cce:	68 07 10 42 00       	push   $0x421007
420cd3:	89 56 0c             	mov    %edx,0xc(%esi)
420cd6:	e8 12 82 ff ff       	call   0x418eed
420cdb:	f6 46 08 04          	testb  $0x4,0x8(%esi)
420cdf:	75 03                	jne    0x420ce4
420ce1:	89 5e 08             	mov    %ebx,0x8(%esi)
420ce4:	5f                   	pop    %edi
420ce5:	5e                   	pop    %esi
420ce6:	5b                   	pop    %ebx
420ce7:	5d                   	pop    %ebp
420ce8:	c3                   	ret
420ce9:	8b ff                	mov    %edi,%edi
420ceb:	55                   	push   %ebp
420cec:	8b ec                	mov    %esp,%ebp
420cee:	8b 4d 08             	mov    0x8(%ebp),%ecx
420cf1:	33 d2                	xor    %edx,%edx
420cf3:	85 c9                	test   %ecx,%ecx
420cf5:	75 04                	jne    0x420cfb
420cf7:	33 c0                	xor    %eax,%eax
420cf9:	5d                   	pop    %ebp
420cfa:	c3                   	ret
420cfb:	0f b7 01             	movzwl (%ecx),%eax
420cfe:	83 c1 02             	add    $0x2,%ecx
420d01:	66 83 f8 41          	cmp    $0x41,%ax
420d05:	72 06                	jb     0x420d0d
420d07:	66 83 f8 5a          	cmp    $0x5a,%ax
420d0b:	76 09                	jbe    0x420d16
420d0d:	83 c0 9f             	add    $0xffffff9f,%eax
420d10:	66 83 f8 19          	cmp    $0x19,%ax
420d14:	77 03                	ja     0x420d19
420d16:	42                   	inc    %edx
420d17:	eb e2                	jmp    0x420cfb
420d19:	8b c2                	mov    %edx,%eax
420d1b:	5d                   	pop    %ebp
420d1c:	c3                   	ret
420d1d:	8b ff                	mov    %edi,%edi
420d1f:	55                   	push   %ebp
420d20:	8b ec                	mov    %esp,%ebp
420d22:	81 ec 88 00 00 00    	sub    $0x88,%esp
420d28:	a1 28 ba 43 00       	mov    0x43ba28,%eax
420d2d:	33 c5                	xor    %ebp,%eax
420d2f:	89 45 fc             	mov    %eax,-0x4(%ebp)
420d32:	56                   	push   %esi
420d33:	57                   	push   %edi
420d34:	8b 7d 08             	mov    0x8(%ebp),%edi
420d37:	e8 20 7e ff ff       	call   0x418b5c
420d3c:	8b f0                	mov    %eax,%esi
420d3e:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
420d44:	6a 40                	push   $0x40
420d46:	50                   	push   %eax
420d47:	8b 4e 64             	mov    0x64(%esi),%ecx
420d4a:	f7 d9                	neg    %ecx
420d4c:	1b c9                	sbb    %ecx,%ecx
420d4e:	81 e1 05 f0 ff ff    	and    $0xfffff005,%ecx
420d54:	81 c1 02 10 00 00    	add    $0x1002,%ecx
420d5a:	51                   	push   %ecx
420d5b:	57                   	push   %edi
420d5c:	e8 54 83 ff ff       	call   0x4190b5
420d61:	85 c0                	test   %eax,%eax
420d63:	75 09                	jne    0x420d6e
420d65:	21 46 58             	and    %eax,0x58(%esi)
420d68:	40                   	inc    %eax
420d69:	e9 7c 02 00 00       	jmp    0x420fea
420d6e:	53                   	push   %ebx
420d6f:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
420d75:	50                   	push   %eax
420d76:	ff 76 54             	push   0x54(%esi)
420d79:	e8 3e d9 ff ff       	call   0x41e6bc
420d7e:	33 db                	xor    %ebx,%ebx
420d80:	89 9d 78 ff ff ff    	mov    %ebx,-0x88(%ebp)
420d86:	59                   	pop    %ecx
420d87:	59                   	pop    %ecx
420d88:	85 c0                	test   %eax,%eax
420d8a:	0f 85 e0 00 00 00    	jne    0x420e70
420d90:	6a 40                	push   $0x40
420d92:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
420d98:	50                   	push   %eax
420d99:	8b 46 60             	mov    0x60(%esi),%eax
420d9c:	f7 d8                	neg    %eax
420d9e:	1b c0                	sbb    %eax,%eax
420da0:	25 02 f0 ff ff       	and    $0xfffff002,%eax
420da5:	05 01 10 00 00       	add    $0x1001,%eax
420daa:	50                   	push   %eax
420dab:	57                   	push   %edi
420dac:	e8 04 83 ff ff       	call   0x4190b5
420db1:	85 c0                	test   %eax,%eax
420db3:	75 08                	jne    0x420dbd
420db5:	21 5e 58             	and    %ebx,0x58(%esi)
420db8:	e9 ef 00 00 00       	jmp    0x420eac
420dbd:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
420dc3:	50                   	push   %eax
420dc4:	ff 76 50             	push   0x50(%esi)
420dc7:	e8 f0 d8 ff ff       	call   0x41e6bc
420dcc:	59                   	pop    %ecx
420dcd:	59                   	pop    %ecx
420dce:	85 c0                	test   %eax,%eax
420dd0:	75 3a                	jne    0x420e0c
420dd2:	81 4e 58 04 03 00 00 	orl    $0x304,0x58(%esi)
420dd9:	8b cf                	mov    %edi,%ecx
420ddb:	8d 51 02             	lea    0x2(%ecx),%edx
420dde:	66 8b 01             	mov    (%ecx),%ax
420de1:	83 c1 02             	add    $0x2,%ecx
420de4:	66 3b c3             	cmp    %bx,%ax
420de7:	75 f5                	jne    0x420dde
420de9:	2b ca                	sub    %edx,%ecx
420deb:	d1 f9                	sar    $1,%ecx
420ded:	8d 41 01             	lea    0x1(%ecx),%eax
420df0:	50                   	push   %eax
420df1:	57                   	push   %edi
420df2:	8d 86 a0 02 00 00    	lea    0x2a0(%esi),%eax
420df8:	6a 55                	push   $0x55
420dfa:	50                   	push   %eax
420dfb:	e8 1d eb ff ff       	call   0x41f91d
420e00:	83 c4 10             	add    $0x10,%esp
420e03:	85 c0                	test   %eax,%eax
420e05:	74 69                	je     0x420e70
420e07:	e9 f0 01 00 00       	jmp    0x420ffc
420e0c:	f6 46 58 02          	testb  $0x2,0x58(%esi)
420e10:	75 5e                	jne    0x420e70
420e12:	39 5e 5c             	cmp    %ebx,0x5c(%esi)
420e15:	74 2f                	je     0x420e46
420e17:	ff 76 5c             	push   0x5c(%esi)
420e1a:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
420e20:	50                   	push   %eax
420e21:	ff 76 50             	push   0x50(%esi)
420e24:	e8 6f 48 00 00       	call   0x425698
420e29:	83 c4 0c             	add    $0xc,%esp
420e2c:	85 c0                	test   %eax,%eax
420e2e:	75 16                	jne    0x420e46
420e30:	83 4e 58 02          	orl    $0x2,0x58(%esi)
420e34:	8b cf                	mov    %edi,%ecx
420e36:	8d 51 02             	lea    0x2(%ecx),%edx
420e39:	66 8b 01             	mov    (%ecx),%ax
420e3c:	83 c1 02             	add    $0x2,%ecx
420e3f:	66 3b c3             	cmp    %bx,%ax
420e42:	75 f5                	jne    0x420e39
420e44:	eb a3                	jmp    0x420de9
420e46:	f6 46 58 01          	testb  $0x1,0x58(%esi)
420e4a:	75 24                	jne    0x420e70
420e4c:	57                   	push   %edi
420e4d:	e8 5d 03 00 00       	call   0x4211af
420e52:	59                   	pop    %ecx
420e53:	85 c0                	test   %eax,%eax
420e55:	74 19                	je     0x420e70
420e57:	83 4e 58 01          	orl    $0x1,0x58(%esi)
420e5b:	8b cf                	mov    %edi,%ecx
420e5d:	8d 51 02             	lea    0x2(%ecx),%edx
420e60:	66 8b 01             	mov    (%ecx),%ax
420e63:	83 c1 02             	add    $0x2,%ecx
420e66:	66 3b c3             	cmp    %bx,%ax
420e69:	75 f5                	jne    0x420e60
420e6b:	e9 79 ff ff ff       	jmp    0x420de9
420e70:	8b 46 58             	mov    0x58(%esi),%eax
420e73:	b9 00 03 00 00       	mov    $0x300,%ecx
420e78:	23 c1                	and    %ecx,%eax
420e7a:	3b c1                	cmp    %ecx,%eax
420e7c:	0f 84 5c 01 00 00    	je     0x420fde
420e82:	8b 4e 60             	mov    0x60(%esi),%ecx
420e85:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
420e8b:	f7 d9                	neg    %ecx
420e8d:	6a 40                	push   $0x40
420e8f:	1b c9                	sbb    %ecx,%ecx
420e91:	81 e1 02 f0 ff ff    	and    $0xfffff002,%ecx
420e97:	50                   	push   %eax
420e98:	81 c1 01 10 00 00    	add    $0x1001,%ecx
420e9e:	51                   	push   %ecx
420e9f:	57                   	push   %edi
420ea0:	e8 10 82 ff ff       	call   0x4190b5
420ea5:	85 c0                	test   %eax,%eax
420ea7:	75 0b                	jne    0x420eb4
420ea9:	89 5e 58             	mov    %ebx,0x58(%esi)
420eac:	33 c0                	xor    %eax,%eax
420eae:	40                   	inc    %eax
420eaf:	e9 35 01 00 00       	jmp    0x420fe9
420eb4:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
420eba:	50                   	push   %eax
420ebb:	ff 76 50             	push   0x50(%esi)
420ebe:	e8 f9 d7 ff ff       	call   0x41e6bc
420ec3:	59                   	pop    %ecx
420ec4:	59                   	pop    %ecx
420ec5:	85 c0                	test   %eax,%eax
420ec7:	0f 85 11 01 00 00    	jne    0x420fde
420ecd:	81 4e 58 00 02 00 00 	orl    $0x200,0x58(%esi)
420ed4:	8b 56 58             	mov    0x58(%esi),%edx
420ed7:	39 5e 60             	cmp    %ebx,0x60(%esi)
420eda:	74 54                	je     0x420f30
420edc:	81 ca 00 01 00 00    	or     $0x100,%edx
420ee2:	89 56 58             	mov    %edx,0x58(%esi)
420ee5:	8d 96 a0 02 00 00    	lea    0x2a0(%esi),%edx
420eeb:	66 39 1a             	cmp    %bx,(%edx)
420eee:	0f 85 ea 00 00 00    	jne    0x420fde
420ef4:	8b cf                	mov    %edi,%ecx
420ef6:	8d 59 02             	lea    0x2(%ecx),%ebx
420ef9:	66 8b 01             	mov    (%ecx),%ax
420efc:	83 c1 02             	add    $0x2,%ecx
420eff:	66 3b 85 78 ff ff ff 	cmp    -0x88(%ebp),%ax
420f06:	75 f1                	jne    0x420ef9
420f08:	2b cb                	sub    %ebx,%ecx
420f0a:	d1 f9                	sar    $1,%ecx
420f0c:	8d 41 01             	lea    0x1(%ecx),%eax
420f0f:	50                   	push   %eax
420f10:	57                   	push   %edi
420f11:	6a 55                	push   $0x55
420f13:	52                   	push   %edx
420f14:	e8 04 ea ff ff       	call   0x41f91d
420f19:	83 c4 10             	add    $0x10,%esp
420f1c:	85 c0                	test   %eax,%eax
420f1e:	0f 84 ba 00 00 00    	je     0x420fde
420f24:	33 c0                	xor    %eax,%eax
420f26:	50                   	push   %eax
420f27:	50                   	push   %eax
420f28:	50                   	push   %eax
420f29:	50                   	push   %eax
420f2a:	50                   	push   %eax
420f2b:	e9 d1 00 00 00       	jmp    0x421001
420f30:	39 5e 5c             	cmp    %ebx,0x5c(%esi)
420f33:	74 7c                	je     0x420fb1
420f35:	8b 4e 50             	mov    0x50(%esi),%ecx
420f38:	8d 59 02             	lea    0x2(%ecx),%ebx
420f3b:	66 8b 01             	mov    (%ecx),%ax
420f3e:	83 c1 02             	add    $0x2,%ecx
420f41:	66 3b 85 78 ff ff ff 	cmp    -0x88(%ebp),%ax
420f48:	75 f1                	jne    0x420f3b
420f4a:	2b cb                	sub    %ebx,%ecx
420f4c:	d1 f9                	sar    $1,%ecx
420f4e:	3b 4e 5c             	cmp    0x5c(%esi),%ecx
420f51:	75 5c                	jne    0x420faf
420f53:	57                   	push   %edi
420f54:	e8 56 02 00 00       	call   0x4211af
420f59:	59                   	pop    %ecx
420f5a:	85 c0                	test   %eax,%eax
420f5c:	75 24                	jne    0x420f82
420f5e:	8b 5e 50             	mov    0x50(%esi),%ebx
420f61:	33 d2                	xor    %edx,%edx
420f63:	8d 4b 02             	lea    0x2(%ebx),%ecx
420f66:	66 8b 03             	mov    (%ebx),%ax
420f69:	83 c3 02             	add    $0x2,%ebx
420f6c:	66 3b c2             	cmp    %dx,%ax
420f6f:	75 f5                	jne    0x420f66
420f71:	ff 76 50             	push   0x50(%esi)
420f74:	2b d9                	sub    %ecx,%ebx
420f76:	d1 fb                	sar    $1,%ebx
420f78:	e8 6c fd ff ff       	call   0x420ce9
420f7d:	59                   	pop    %ecx
420f7e:	3b c3                	cmp    %ebx,%eax
420f80:	74 5c                	je     0x420fde
420f82:	81 4e 58 00 01 00 00 	orl    $0x100,0x58(%esi)
420f89:	8d 96 a0 02 00 00    	lea    0x2a0(%esi),%edx
420f8f:	33 c0                	xor    %eax,%eax
420f91:	66 39 02             	cmp    %ax,(%edx)
420f94:	75 48                	jne    0x420fde
420f96:	8b cf                	mov    %edi,%ecx
420f98:	8d 59 02             	lea    0x2(%ecx),%ebx
420f9b:	66 8b 01             	mov    (%ecx),%ax
420f9e:	83 c1 02             	add    $0x2,%ecx
420fa1:	66 3b 85 78 ff ff ff 	cmp    -0x88(%ebp),%ax
420fa8:	75 f1                	jne    0x420f9b
420faa:	e9 59 ff ff ff       	jmp    0x420f08
420faf:	33 db                	xor    %ebx,%ebx
420fb1:	81 ca 00 01 00 00    	or     $0x100,%edx
420fb7:	89 56 58             	mov    %edx,0x58(%esi)
420fba:	8d 96 a0 02 00 00    	lea    0x2a0(%esi),%edx
420fc0:	66 39 1a             	cmp    %bx,(%edx)
420fc3:	75 19                	jne    0x420fde
420fc5:	8b cf                	mov    %edi,%ecx
420fc7:	8d 59 02             	lea    0x2(%ecx),%ebx
420fca:	66 8b 01             	mov    (%ecx),%ax
420fcd:	83 c1 02             	add    $0x2,%ecx
420fd0:	66 3b 85 78 ff ff ff 	cmp    -0x88(%ebp),%ax
420fd7:	75 f1                	jne    0x420fca
420fd9:	e9 2a ff ff ff       	jmp    0x420f08
420fde:	8b 46 58             	mov    0x58(%esi),%eax
420fe1:	c1 e8 02             	shr    $0x2,%eax
420fe4:	f7 d0                	not    %eax
420fe6:	83 e0 01             	and    $0x1,%eax
420fe9:	5b                   	pop    %ebx
420fea:	8b 4d fc             	mov    -0x4(%ebp),%ecx
420fed:	5f                   	pop    %edi
420fee:	33 cd                	xor    %ebp,%ecx
420ff0:	5e                   	pop    %esi
420ff1:	e8 6a 60 fe ff       	call   0x407060
420ff6:	8b e5                	mov    %ebp,%esp
420ff8:	5d                   	pop    %ebp
420ff9:	c2 0c 00             	ret    $0xc
420ffc:	53                   	push   %ebx
420ffd:	53                   	push   %ebx
420ffe:	53                   	push   %ebx
420fff:	53                   	push   %ebx
421000:	53                   	push   %ebx
421001:	e8 09 ad fe ff       	call   0x40bd0f
421006:	cc                   	int3
421007:	8b ff                	mov    %edi,%edi
421009:	55                   	push   %ebp
42100a:	8b ec                	mov    %esp,%ebp
42100c:	81 ec f4 00 00 00    	sub    $0xf4,%esp
421012:	a1 28 ba 43 00       	mov    0x43ba28,%eax
421017:	33 c5                	xor    %ebp,%eax
421019:	89 45 fc             	mov    %eax,-0x4(%ebp)
42101c:	56                   	push   %esi
42101d:	57                   	push   %edi
42101e:	8b 7d 08             	mov    0x8(%ebp),%edi
421021:	e8 36 7b ff ff       	call   0x418b5c
421026:	8b f0                	mov    %eax,%esi
421028:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
42102e:	6a 78                	push   $0x78
421030:	50                   	push   %eax
421031:	8b 4e 60             	mov    0x60(%esi),%ecx
421034:	f7 d9                	neg    %ecx
421036:	1b c9                	sbb    %ecx,%ecx
421038:	81 e1 02 f0 ff ff    	and    $0xfffff002,%ecx
42103e:	81 c1 01 10 00 00    	add    $0x1001,%ecx
421044:	51                   	push   %ecx
421045:	57                   	push   %edi
421046:	e8 6a 80 ff ff       	call   0x4190b5
42104b:	85 c0                	test   %eax,%eax
42104d:	75 06                	jne    0x421055
42104f:	21 46 58             	and    %eax,0x58(%esi)
421052:	40                   	inc    %eax
421053:	eb 56                	jmp    0x4210ab
421055:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax