41cc4c:	e8 cf fd ff ff       	call   0x41ca20
41cc51:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
41cc55:	8b d8                	mov    %eax,%ebx
41cc57:	e9 a6 00 00 00       	jmp    0x41cd02
41cc5c:	89 75 f4             	mov    %esi,-0xc(%ebp)
41cc5f:	33 db                	xor    %ebx,%ebx
41cc61:	8d 4e 01             	lea    0x1(%esi),%ecx
41cc64:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41cc67:	83 f9 ff             	cmp    $0xffffffff,%ecx
41cc6a:	7c 71                	jl     0x41ccdd
41cc6c:	8b 35 fc 10 45 00    	mov    0x4510fc,%esi
41cc72:	3b ce                	cmp    %esi,%ecx
41cc74:	7e 05                	jle    0x41cc7b
41cc76:	8b ce                	mov    %esi,%ecx
41cc78:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41cc7b:	89 0d 48 0c 45 00    	mov    %ecx,0x450c48
41cc81:	83 f9 ff             	cmp    $0xffffffff,%ecx
41cc84:	74 5d                	je     0x41cce3
41cc86:	39 0d fc 10 45 00    	cmp    %ecx,0x4510fc
41cc8c:	74 55                	je     0x41cce3
41cc8e:	a1 f8 10 45 00       	mov    0x4510f8,%eax
41cc93:	8b 34 88             	mov    (%eax,%ecx,4),%esi
41cc96:	85 f6                	test   %esi,%esi
41cc98:	74 49                	je     0x41cce3
41cc9a:	0f b7 06             	movzwl (%esi),%eax
41cc9d:	50                   	push   %eax
41cc9e:	68 00 3f 40 00       	push   $0x403f00
41cca3:	ff 15 14 23 45 00    	call   *0x452314
41cca9:	83 c4 08             	add    $0x8,%esp
41ccac:	85 c0                	test   %eax,%eax
41ccae:	74 1a                	je     0x41ccca
41ccb0:	0f b7 4e 02          	movzwl 0x2(%esi),%ecx
41ccb4:	33 c0                	xor    %eax,%eax
41ccb6:	66 3b c1             	cmp    %cx,%ax
41ccb9:	74 0f                	je     0x41ccca
41ccbb:	66 3b 46 04          	cmp    0x4(%esi),%ax
41ccbf:	75 09                	jne    0x41ccca
41ccc1:	8b d7                	mov    %edi,%edx
41ccc3:	e8 58 fd ff ff       	call   0x41ca20
41ccc8:	8b d8                	mov    %eax,%ebx
41ccca:	85 db                	test   %ebx,%ebx
41cccc:	75 08                	jne    0x41ccd6
41ccce:	8b 35 48 0c 45 00    	mov    0x450c48,%esi
41ccd4:	eb 8b                	jmp    0x41cc61
41ccd6:	a1 48 0c 45 00       	mov    0x450c48,%eax
41ccdb:	eb 03                	jmp    0x41cce0
41ccdd:	83 c8 ff             	or     $0xffffffff,%eax
41cce0:	89 45 fc             	mov    %eax,-0x4(%ebp)
41cce3:	8b 55 f4             	mov    -0xc(%ebp),%edx
41cce6:	83 fa ff             	cmp    $0xffffffff,%edx
41cce9:	7d 05                	jge    0x41ccf0
41cceb:	83 ce ff             	or     $0xffffffff,%esi
41ccee:	eb 0c                	jmp    0x41ccfc
41ccf0:	8b 35 fc 10 45 00    	mov    0x4510fc,%esi
41ccf6:	3b d6                	cmp    %esi,%edx
41ccf8:	7f 02                	jg     0x41ccfc
41ccfa:	8b f2                	mov    %edx,%esi
41ccfc:	89 35 48 0c 45 00    	mov    %esi,0x450c48
41cd02:	85 db                	test   %ebx,%ebx
41cd04:	75 1d                	jne    0x41cd23
41cd06:	6a 0a                	push   $0xa
41cd08:	6a 0a                	push   $0xa
41cd0a:	68 18 44 40 00       	push   $0x404418
41cd0f:	68 8c c3 40 00       	push   $0x40c38c
41cd14:	ff 15 74 23 45 00    	call   *0x452374
41cd1a:	8b 35 48 0c 45 00    	mov    0x450c48,%esi
41cd20:	83 c4 10             	add    $0x10,%esp
41cd23:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41cd26:	8b 45 f8             	mov    -0x8(%ebp),%eax
41cd29:	33 d2                	xor    %edx,%edx
41cd2b:	83 c0 04             	add    $0x4,%eax
41cd2e:	89 45 f8             	mov    %eax,-0x8(%ebp)
41cd31:	66 3b 10             	cmp    (%eax),%dx
41cd34:	75 16                	jne    0x41cd4c
41cd36:	8d 46 01             	lea    0x1(%esi),%eax
41cd39:	83 f8 ff             	cmp    $0xffffffff,%eax
41cd3c:	7d 63                	jge    0x41cda1
41cd3e:	83 ce ff             	or     $0xffffffff,%esi
41cd41:	89 35 48 0c 45 00    	mov    %esi,0x450c48
41cd47:	33 c0                	xor    %eax,%eax
41cd49:	89 45 f8             	mov    %eax,-0x8(%ebp)
41cd4c:	85 db                	test   %ebx,%ebx
41cd4e:	0f 84 82 03 00 00    	je     0x41d0d6
41cd54:	85 c0                	test   %eax,%eax
41cd56:	0f 84 7a 03 00 00    	je     0x41d0d6
41cd5c:	3b f1                	cmp    %ecx,%esi
41cd5e:	0f 84 54 03 00 00    	je     0x41d0b8
41cd64:	8b 75 f8             	mov    -0x8(%ebp),%esi
41cd67:	0f b7 06             	movzwl (%esi),%eax
41cd6a:	50                   	push   %eax
41cd6b:	68 00 3f 40 00       	push   $0x403f00
41cd70:	ff 15 14 23 45 00    	call   *0x452314
41cd76:	83 c4 08             	add    $0x8,%esp
41cd79:	85 c0                	test   %eax,%eax
41cd7b:	0f 85 9b 00 00 00    	jne    0x41ce1c
41cd81:	8b 47 2c             	mov    0x2c(%edi),%eax
41cd84:	83 e8 02             	sub    $0x2,%eax
41cd87:	74 57                	je     0x41cde0
41cd89:	83 e8 01             	sub    $0x1,%eax
41cd8c:	74 3f                	je     0x41cdcd
41cd8e:	8b 47 04             	mov    0x4(%edi),%eax
41cd91:	33 db                	xor    %ebx,%ebx
41cd93:	85 c0                	test   %eax,%eax
41cd95:	0f 94 c3             	sete   %bl
41cd98:	85 c0                	test   %eax,%eax
41cd9a:	75 55                	jne    0x41cdf1
41cd9c:	89 77 04             	mov    %esi,0x4(%edi)
41cd9f:	eb 50                	jmp    0x41cdf1
41cda1:	8b 35 fc 10 45 00    	mov    0x4510fc,%esi
41cda7:	3b c6                	cmp    %esi,%eax
41cda9:	7f 02                	jg     0x41cdad
41cdab:	8b f0                	mov    %eax,%esi
41cdad:	89 35 48 0c 45 00    	mov    %esi,0x450c48
41cdb3:	83 fe ff             	cmp    $0xffffffff,%esi
41cdb6:	74 8f                	je     0x41cd47
41cdb8:	39 35 fc 10 45 00    	cmp    %esi,0x4510fc
41cdbe:	74 87                	je     0x41cd47
41cdc0:	a1 f8 10 45 00       	mov    0x4510f8,%eax
41cdc5:	8b 04 b0             	mov    (%eax,%esi,4),%eax
41cdc8:	e9 7c ff ff ff       	jmp    0x41cd49
41cdcd:	8b 47 18             	mov    0x18(%edi),%eax
41cdd0:	33 db                	xor    %ebx,%ebx
41cdd2:	85 c0                	test   %eax,%eax
41cdd4:	0f 94 c3             	sete   %bl
41cdd7:	85 c0                	test   %eax,%eax
41cdd9:	75 16                	jne    0x41cdf1
41cddb:	89 77 18             	mov    %esi,0x18(%edi)
41cdde:	eb 11                	jmp    0x41cdf1
41cde0:	8b 47 20             	mov    0x20(%edi),%eax
41cde3:	33 db                	xor    %ebx,%ebx
41cde5:	85 c0                	test   %eax,%eax
41cde7:	0f 94 c3             	sete   %bl
41cdea:	85 c0                	test   %eax,%eax
41cdec:	75 03                	jne    0x41cdf1
41cdee:	89 77 20             	mov    %esi,0x20(%edi)
41cdf1:	85 db                	test   %ebx,%ebx
41cdf3:	0f 85 b6 02 00 00    	jne    0x41d0af
41cdf9:	56                   	push   %esi
41cdfa:	68 18 42 40 00       	push   $0x404218
41cdff:	ff 15 74 23 45 00    	call   *0x452374
41ce05:	6a 0a                	push   $0xa
41ce07:	6a 0a                	push   $0xa
41ce09:	68 b0 c3 40 00       	push   $0x40c3b0
41ce0e:	ff 15 74 23 45 00    	call   *0x452374
41ce14:	83 c4 14             	add    $0x14,%esp
41ce17:	e9 93 02 00 00       	jmp    0x41d0af
41ce1c:	8d 46 02             	lea    0x2(%esi),%eax
41ce1f:	68 ec d4 40 00       	push   $0x40d4ec
41ce24:	50                   	push   %eax
41ce25:	ff 15 68 23 45 00    	call   *0x452368
41ce2b:	83 c4 08             	add    $0x8,%esp
41ce2e:	85 c0                	test   %eax,%eax
41ce30:	75 1b                	jne    0x41ce4d
41ce32:	8b cf                	mov    %edi,%ecx
41ce34:	e8 57 fc ff ff       	call   0x41ca90
41ce39:	85 c0                	test   %eax,%eax
41ce3b:	0f 84 4e 02 00 00    	je     0x41d08f
41ce41:	81 4f 30 00 00 00 08 	orl    $0x8000000,0x30(%edi)
41ce48:	e9 62 02 00 00       	jmp    0x41d0af
41ce4d:	8d 46 02             	lea    0x2(%esi),%eax
41ce50:	68 f4 d4 40 00       	push   $0x40d4f4
41ce55:	50                   	push   %eax
41ce56:	ff 15 68 23 45 00    	call   *0x452368
41ce5c:	83 c4 08             	add    $0x8,%esp
41ce5f:	85 c0                	test   %eax,%eax
41ce61:	0f 85 a1 00 00 00    	jne    0x41cf08
41ce67:	8b cf                	mov    %edi,%ecx
41ce69:	e8 42 fc ff ff       	call   0x41cab0
41ce6e:	85 c0                	test   %eax,%eax
41ce70:	0f 84 19 02 00 00    	je     0x41d08f
41ce76:	a1 48 0c 45 00       	mov    0x450c48,%eax
41ce7b:	81 4f 30 00 00 00 18 	orl    $0x18000000,0x30(%edi)
41ce82:	40                   	inc    %eax
41ce83:	83 f8 ff             	cmp    $0xffffffff,%eax
41ce86:	7d 3a                	jge    0x41cec2
41ce88:	83 ce ff             	or     $0xffffffff,%esi
41ce8b:	33 c0                	xor    %eax,%eax
41ce8d:	89 47 20             	mov    %eax,0x20(%edi)
41ce90:	85 c0                	test   %eax,%eax
41ce92:	74 0a                	je     0x41ce9e
41ce94:	0f b7 00             	movzwl (%eax),%eax
41ce97:	f7 d8                	neg    %eax
41ce99:	1b c0                	sbb    %eax,%eax
41ce9b:	21 47 20             	and    %eax,0x20(%edi)
41ce9e:	8d 46 01             	lea    0x1(%esi),%eax
41cea1:	83 f8 ff             	cmp    $0xffffffff,%eax
41cea4:	7d 3f                	jge    0x41cee5
41cea6:	83 ce ff             	or     $0xffffffff,%esi
41cea9:	33 c0                	xor    %eax,%eax
41ceab:	89 47 0c             	mov    %eax,0xc(%edi)
41ceae:	85 c0                	test   %eax,%eax
41ceb0:	0f 85 ff 01 00 00    	jne    0x41d0b5
41ceb6:	c7 47 0c bc 3c 40 00 	movl   $0x403cbc,0xc(%edi)
41cebd:	e9 f3 01 00 00       	jmp    0x41d0b5
41cec2:	8b 35 fc 10 45 00    	mov    0x4510fc,%esi
41cec8:	3b c6                	cmp    %esi,%eax
41ceca:	7f 02                	jg     0x41cece
41cecc:	8b f0                	mov    %eax,%esi
41cece:	83 fe ff             	cmp    $0xffffffff,%esi
41ced1:	74 b8                	je     0x41ce8b
41ced3:	39 35 fc 10 45 00    	cmp    %esi,0x4510fc
41ced9:	74 b0                	je     0x41ce8b
41cedb:	a1 f8 10 45 00       	mov    0x4510f8,%eax
41cee0:	8b 04 b0             	mov    (%eax,%esi,4),%eax
41cee3:	eb a8                	jmp    0x41ce8d
41cee5:	8b 35 fc 10 45 00    	mov    0x4510fc,%esi
41ceeb:	3b c6                	cmp    %esi,%eax
41ceed:	7f 02                	jg     0x41cef1
41ceef:	8b f0                	mov    %eax,%esi
41cef1:	83 fe ff             	cmp    $0xffffffff,%esi
41cef4:	74 b3                	je     0x41cea9
41cef6:	39 35 fc 10 45 00    	cmp    %esi,0x4510fc
41cefc:	74 ab                	je     0x41cea9
41cefe:	a1 f8 10 45 00       	mov    0x4510f8,%eax
41cf03:	8b 04 b0             	mov    (%eax,%esi,4),%eax
41cf06:	eb a3                	jmp    0x41ceab
41cf08:	8d 46 02             	lea    0x2(%esi),%eax
41cf0b:	68 04 d5 40 00       	push   $0x40d504
41cf10:	50                   	push   %eax
41cf11:	ff 15 68 23 45 00    	call   *0x452368
41cf17:	83 c4 08             	add    $0x8,%esp
41cf1a:	85 c0                	test   %eax,%eax
41cf1c:	75 50                	jne    0x41cf6e
41cf1e:	8b cf                	mov    %edi,%ecx
41cf20:	e8 8b fb ff ff       	call   0x41cab0
41cf25:	85 c0                	test   %eax,%eax
41cf27:	0f 84 62 01 00 00    	je     0x41d08f
41cf2d:	a1 48 0c 45 00       	mov    0x450c48,%eax
41cf32:	40                   	inc    %eax
41cf33:	83 f8 ff             	cmp    $0xffffffff,%eax
41cf36:	7d 0d                	jge    0x41cf45
41cf38:	83 ce ff             	or     $0xffffffff,%esi
41cf3b:	33 c0                	xor    %eax,%eax
41cf3d:	89 47 10             	mov    %eax,0x10(%edi)
41cf40:	e9 70 01 00 00       	jmp    0x41d0b5
41cf45:	8b 35 fc 10 45 00    	mov    0x4510fc,%esi
41cf4b:	3b c6                	cmp    %esi,%eax
41cf4d:	7f 02                	jg     0x41cf51
41cf4f:	8b f0                	mov    %eax,%esi
41cf51:	83 fe ff             	cmp    $0xffffffff,%esi
41cf54:	74 e5                	je     0x41cf3b
41cf56:	39 35 fc 10 45 00    	cmp    %esi,0x4510fc
41cf5c:	74 dd                	je     0x41cf3b
41cf5e:	a1 f8 10 45 00       	mov    0x4510f8,%eax
41cf63:	8b 04 b0             	mov    (%eax,%esi,4),%eax
41cf66:	89 47 10             	mov    %eax,0x10(%edi)
41cf69:	e9 47 01 00 00       	jmp    0x41d0b5
41cf6e:	8d 46 02             	lea    0x2(%esi),%eax
41cf71:	68 20 d5 40 00       	push   $0x40d520
41cf76:	50                   	push   %eax
41cf77:	ff 15 68 23 45 00    	call   *0x452368
41cf7d:	83 c4 08             	add    $0x8,%esp
41cf80:	85 c0                	test   %eax,%eax
41cf82:	75 16                	jne    0x41cf9a
41cf84:	83 7f 2c 04          	cmpl   $0x4,0x2c(%edi)
41cf88:	0f 85 01 01 00 00    	jne    0x41d08f
41cf8e:	81 4f 30 00 00 00 20 	orl    $0x20000000,0x30(%edi)
41cf95:	e9 15 01 00 00       	jmp    0x41d0af
41cf9a:	6a 06                	push   $0x6
41cf9c:	8d 46 02             	lea    0x2(%esi),%eax
41cf9f:	68 08 3f 40 00       	push   $0x403f08
41cfa4:	50                   	push   %eax
41cfa5:	ff 15 a0 22 45 00    	call   *0x4522a0
41cfab:	83 c4 0c             	add    $0xc,%esp
41cfae:	85 c0                	test   %eax,%eax
41cfb0:	75 79                	jne    0x41d02b
41cfb2:	66 83 7e 0e 3a       	cmpw   $0x3a,0xe(%esi)
41cfb7:	8d 56 0e             	lea    0xe(%esi),%edx
41cfba:	75 1f                	jne    0x41cfdb
41cfbc:	0f b7 42 02          	movzwl 0x2(%edx),%eax
41cfc0:	83 c2 02             	add    $0x2,%edx
41cfc3:	8b 35 48 0c 45 00    	mov    0x450c48,%esi
41cfc9:	33 db                	xor    %ebx,%ebx
41cfcb:	66 85 c0             	test   %ax,%ax
41cfce:	0f 95 c3             	setne  %bl
41cfd1:	66 85 c0             	test   %ax,%ax
41cfd4:	75 24                	jne    0x41cffa
41cfd6:	e9 da 00 00 00       	jmp    0x41d0b5
41cfdb:	a1 48 0c 45 00       	mov    0x450c48,%eax
41cfe0:	40                   	inc    %eax
41cfe1:	83 f8 ff             	cmp    $0xffffffff,%eax
41cfe4:	7d 1b                	jge    0x41d001
41cfe6:	83 ce ff             	or     $0xffffffff,%esi
41cfe9:	33 d2                	xor    %edx,%edx
41cfeb:	85 d2                	test   %edx,%edx
41cfed:	74 35                	je     0x41d024
41cfef:	66 83 3a 00          	cmpw   $0x0,(%edx)
41cff3:	74 2f                	je     0x41d024
41cff5:	bb 01 00 00 00       	mov    $0x1,%ebx
41cffa:	89 17                	mov    %edx,(%edi)
41cffc:	e9 b4 00 00 00       	jmp    0x41d0b5
41d001:	8b 35 fc 10 45 00    	mov    0x4510fc,%esi
41d007:	3b c6                	cmp    %esi,%eax
41d009:	7f 02                	jg     0x41d00d
41d00b:	8b f0                	mov    %eax,%esi
41d00d:	83 fe ff             	cmp    $0xffffffff,%esi
41d010:	74 d7                	je     0x41cfe9
41d012:	39 35 fc 10 45 00    	cmp    %esi,0x4510fc
41d018:	74 cf                	je     0x41cfe9
41d01a:	a1 f8 10 45 00       	mov    0x4510f8,%eax
41d01f:	8b 14 b0             	mov    (%eax,%esi,4),%edx
41d022:	eb c7                	jmp    0x41cfeb
41d024:	33 db                	xor    %ebx,%ebx
41d026:	e9 8a 00 00 00       	jmp    0x41d0b5
41d02b:	0f b7 46 02          	movzwl 0x2(%esi),%eax
41d02f:	83 c0 df             	add    $0xffffffdf,%eax
41d032:	83 f8 4e             	cmp    $0x4e,%eax
41d035:	77 41                	ja     0x41d078
41d037:	0f b6 80 28 d1 41 00 	movzbl 0x41d128(%eax),%eax
41d03e:	ff 24 85 08 d1 41 00 	jmp    *0x41d108(,%eax,4)
41d045:	81 4f 30 00 00 00 02 	orl    $0x2000000,0x30(%edi)
41d04c:	eb 61                	jmp    0x41d0af
41d04e:	81 4f 30 00 00 20 00 	orl    $0x200000,0x30(%edi)
41d055:	eb 58                	jmp    0x41d0af
41d057:	81 4f 30 00 10 00 00 	orl    $0x1000,0x30(%edi)
41d05e:	eb 4f                	jmp    0x41d0af
41d060:	81 4f 30 00 00 00 01 	orl    $0x1000000,0x30(%edi)
41d067:	eb 46                	jmp    0x41d0af
41d069:	81 4f 30 00 00 80 00 	orl    $0x800000,0x30(%edi)
41d070:	eb 3d                	jmp    0x41d0af
41d072:	83 4f 30 01          	orl    $0x1,0x30(%edi)
41d076:	eb 37                	jmp    0x41d0af
41d078:	8b 5d f0             	mov    -0x10(%ebp),%ebx
41d07b:	85 db                	test   %ebx,%ebx
41d07d:	74 10                	je     0x41d08f
41d07f:	57                   	push   %edi
41d080:	56                   	push   %esi
41d081:	8b cb                	mov    %ebx,%ecx
41d083:	ff 15 84 23 45 00    	call   *0x452384
41d089:	ff d3                	call   *%ebx
41d08b:	8b d8                	mov    %eax,%ebx
41d08d:	eb 20                	jmp    0x41d0af
41d08f:	56                   	push   %esi
41d090:	68 d0 41 40 00       	push   $0x4041d0
41d095:	ff 15 74 23 45 00    	call   *0x452374
41d09b:	6a 0a                	push   $0xa
41d09d:	6a 0a                	push   $0xa
41d09f:	68 b0 c3 40 00       	push   $0x40c3b0
41d0a4:	ff 15 74 23 45 00    	call   *0x452374
41d0aa:	83 c4 14             	add    $0x14,%esp
41d0ad:	33 db                	xor    %ebx,%ebx
41d0af:	8b 35 48 0c 45 00    	mov    0x450c48,%esi
41d0b5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41d0b8:	8d 46 01             	lea    0x1(%esi),%eax
41d0bb:	83 f8 ff             	cmp    $0xffffffff,%eax
41d0be:	7d 1f                	jge    0x41d0df
41d0c0:	83 ce ff             	or     $0xffffffff,%esi
41d0c3:	89 35 48 0c 45 00    	mov    %esi,0x450c48
41d0c9:	33 c0                	xor    %eax,%eax
41d0cb:	89 45 f8             	mov    %eax,-0x8(%ebp)