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)
41d0ce:	85 db                	test   %ebx,%ebx
41d0d0:	0f 85 7e fc ff ff    	jne    0x41cd54
41d0d6:	5f                   	pop    %edi
41d0d7:	5e                   	pop    %esi
41d0d8:	8b c3                	mov    %ebx,%eax
41d0da:	5b                   	pop    %ebx
41d0db:	8b e5                	mov    %ebp,%esp
41d0dd:	5d                   	pop    %ebp
41d0de:	c3                   	ret
41d0df:	8b 35 fc 10 45 00    	mov    0x4510fc,%esi
41d0e5:	3b c6                	cmp    %esi,%eax
41d0e7:	7f 02                	jg     0x41d0eb
41d0e9:	8b f0                	mov    %eax,%esi
41d0eb:	89 35 48 0c 45 00    	mov    %esi,0x450c48
41d0f1:	83 fe ff             	cmp    $0xffffffff,%esi
41d0f4:	74 d3                	je     0x41d0c9
41d0f6:	39 35 fc 10 45 00    	cmp    %esi,0x4510fc
41d0fc:	74 cb                	je     0x41d0c9
41d0fe:	a1 f8 10 45 00       	mov    0x4510f8,%eax
41d103:	8b 04 b0             	mov    (%eax,%esi,4),%eax
41d106:	eb c3                	jmp    0x41d0cb
41d108:	af                   	scas   %es:(%edi),%eax
41d109:	d0 41 00             	rolb   $1,0x0(%ecx)
41d10c:	60                   	pusha
41d10d:	d0 41 00             	rolb   $1,0x0(%ecx)
41d110:	45                   	inc    %ebp
41d111:	d0 41 00             	rolb   $1,0x0(%ecx)
41d114:	69 d0 41 00 4e d0    	imul   $0xd04e0041,%eax,%edx
41d11a:	41                   	inc    %ecx
41d11b:	00 57 d0             	add    %dl,-0x30(%edi)
41d11e:	41                   	inc    %ecx
41d11f:	00 72 d0             	add    %dh,-0x30(%edx)
41d122:	41                   	inc    %ecx
41d123:	00 78 d0             	add    %bh,-0x30(%eax)
41d126:	41                   	inc    %ecx
41d127:	00 00                	add    %al,(%eax)
41d129:	07                   	pop    %es
41d12a:	07                   	pop    %es
41d12b:	07                   	pop    %es
41d12c:	07                   	pop    %es
41d12d:	07                   	pop    %es
41d12e:	07                   	pop    %es
41d12f:	07                   	pop    %es
41d130:	07                   	pop    %es
41d131:	07                   	pop    %es
41d132:	07                   	pop    %es
41d133:	07                   	pop    %es
41d134:	07                   	pop    %es
41d135:	07                   	pop    %es
41d136:	07                   	pop    %es
41d137:	07                   	pop    %es
41d138:	01 02                	add    %eax,(%edx)
41d13a:	03 04 07             	add    (%edi,%eax,1),%eax
41d13d:	07                   	pop    %es
41d13e:	07                   	pop    %es
41d13f:	05 07 07 07 07       	add    $0x7070707,%eax
41d144:	07                   	pop    %es
41d145:	07                   	pop    %es
41d146:	07                   	pop    %es
41d147:	07                   	pop    %es
41d148:	07                   	pop    %es
41d149:	07                   	pop    %es
41d14a:	07                   	pop    %es
41d14b:	07                   	pop    %es
41d14c:	07                   	pop    %es
41d14d:	07                   	pop    %es
41d14e:	07                   	pop    %es
41d14f:	07                   	pop    %es
41d150:	07                   	pop    %es
41d151:	07                   	pop    %es
41d152:	07                   	pop    %es
41d153:	07                   	pop    %es
41d154:	07                   	pop    %es
41d155:	07                   	pop    %es
41d156:	06                   	push   %es
41d157:	07                   	pop    %es
41d158:	07                   	pop    %es
41d159:	07                   	pop    %es
41d15a:	07                   	pop    %es
41d15b:	07                   	pop    %es
41d15c:	07                   	pop    %es
41d15d:	07                   	pop    %es
41d15e:	07                   	pop    %es
41d15f:	07                   	pop    %es
41d160:	07                   	pop    %es
41d161:	07                   	pop    %es
41d162:	07                   	pop    %es
41d163:	07                   	pop    %es
41d164:	07                   	pop    %es
41d165:	07                   	pop    %es
41d166:	07                   	pop    %es
41d167:	07                   	pop    %es
41d168:	07                   	pop    %es
41d169:	07                   	pop    %es
41d16a:	07                   	pop    %es
41d16b:	07                   	pop    %es
41d16c:	07                   	pop    %es
41d16d:	07                   	pop    %es
41d16e:	07                   	pop    %es
41d16f:	07                   	pop    %es
41d170:	07                   	pop    %es
41d171:	07                   	pop    %es
41d172:	07                   	pop    %es
41d173:	07                   	pop    %es
41d174:	07                   	pop    %es
41d175:	07                   	pop    %es
41d176:	06                   	push   %es
41d177:	cc                   	int3
41d178:	cc                   	int3
41d179:	cc                   	int3
41d17a:	cc                   	int3
41d17b:	cc                   	int3
41d17c:	cc                   	int3
41d17d:	cc                   	int3
41d17e:	cc                   	int3
41d17f:	cc                   	int3
41d180:	8b ff                	mov    %edi,%edi
41d182:	55                   	push   %ebp
41d183:	8b ec                	mov    %esp,%ebp
41d185:	83 ec 54             	sub    $0x54,%esp
41d188:	56                   	push   %esi
41d189:	57                   	push   %edi
41d18a:	6a 54                	push   $0x54
41d18c:	8d 45 ac             	lea    -0x54(%ebp),%eax
41d18f:	8b f2                	mov    %edx,%esi
41d191:	6a 00                	push   $0x0
41d193:	50                   	push   %eax
41d194:	8b f9                	mov    %ecx,%edi
41d196:	e8 c6 08 03 00       	call   0x44da61
41d19b:	8b 45 08             	mov    0x8(%ebp),%eax
41d19e:	83 c4 0c             	add    $0xc,%esp
41d1a1:	89 45 d0             	mov    %eax,-0x30(%ebp)
41d1a4:	8b 45 0c             	mov    0xc(%ebp),%eax
41d1a7:	89 45 d4             	mov    %eax,-0x2c(%ebp)
41d1aa:	8b 45 10             	mov    0x10(%ebp),%eax
41d1ad:	89 45 dc             	mov    %eax,-0x24(%ebp)
41d1b0:	8b 45 18             	mov    0x18(%ebp),%eax
41d1b3:	89 45 c4             	mov    %eax,-0x3c(%ebp)
41d1b6:	8d 45 ac             	lea    -0x54(%ebp),%eax
41d1b9:	50                   	push   %eax
41d1ba:	c7 45 ac 54 00 00 00 	movl   $0x54,-0x54(%ebp)
41d1c1:	c7 45 bc 0c 00 00 00 	movl   $0xc,-0x44(%ebp)
41d1c8:	89 75 c8             	mov    %esi,-0x38(%ebp)
41d1cb:	89 7d b0             	mov    %edi,-0x50(%ebp)
41d1ce:	c7 45 f8 b0 a2 41 00 	movl   $0x41a2b0,-0x8(%ebp)
41d1d5:	ff 15 04 20 45 00    	call   *0x452004
41d1db:	5f                   	pop    %edi
41d1dc:	5e                   	pop    %esi
41d1dd:	8b e5                	mov    %ebp,%esp
41d1df:	5d                   	pop    %ebp
41d1e0:	c2 14 00             	ret    $0x14
41d1e3:	cc                   	int3
41d1e4:	cc                   	int3
41d1e5:	cc                   	int3
41d1e6:	cc                   	int3
41d1e7:	cc                   	int3
41d1e8:	cc                   	int3
41d1e9:	cc                   	int3
41d1ea:	cc                   	int3
41d1eb:	cc                   	int3
41d1ec:	cc                   	int3
41d1ed:	cc                   	int3
41d1ee:	cc                   	int3
41d1ef:	cc                   	int3
41d1f0:	8b ff                	mov    %edi,%edi
41d1f2:	55                   	push   %ebp
41d1f3:	8b ec                	mov    %esp,%ebp
41d1f5:	83 ec 54             	sub    $0x54,%esp
41d1f8:	56                   	push   %esi
41d1f9:	57                   	push   %edi
41d1fa:	6a 54                	push   $0x54
41d1fc:	8d 45 ac             	lea    -0x54(%ebp),%eax
41d1ff:	8b f2                	mov    %edx,%esi
41d201:	6a 00                	push   $0x0
41d203:	50                   	push   %eax