4238a9:	55                   	push   %ebp
4238aa:	8b ec                	mov    %esp,%ebp
4238ac:	51                   	push   %ecx
4238ad:	53                   	push   %ebx
4238ae:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4238b1:	56                   	push   %esi
4238b2:	8b 75 08             	mov    0x8(%ebp),%esi
4238b5:	83 7e 14 00          	cmpl   $0x0,0x14(%esi)
4238b9:	57                   	push   %edi
4238ba:	0f 84 9d 00 00 00    	je     0x42395d
4238c0:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
4238c4:	74 09                	je     0x4238cf
4238c6:	83 fb 7f             	cmp    $0x7f,%ebx
4238c9:	0f 86 8e 00 00 00    	jbe    0x42395d
4238cf:	33 ff                	xor    %edi,%edi
4238d1:	47                   	inc    %edi
4238d2:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
4238d8:	73 1f                	jae    0x4238f9
4238da:	39 7e 28             	cmp    %edi,0x28(%esi)
4238dd:	7e 0d                	jle    0x4238ec
4238df:	57                   	push   %edi
4238e0:	53                   	push   %ebx
4238e1:	56                   	push   %esi
4238e2:	e8 f6 cc ff ff       	call   0x4205dd
4238e7:	83 c4 0c             	add    $0xc,%esp
4238ea:	eb 09                	jmp    0x4238f5
4238ec:	8b 46 48             	mov    0x48(%esi),%eax
4238ef:	0f b6 04 58          	movzbl (%eax,%ebx,2),%eax
4238f3:	23 c7                	and    %edi,%eax
4238f5:	85 c0                	test   %eax,%eax
4238f7:	74 71                	je     0x42396a
4238f9:	8b 56 48             	mov    0x48(%esi),%edx
4238fc:	8b c3                	mov    %ebx,%eax
4238fe:	c1 f8 08             	sar    $0x8,%eax
423901:	0f b6 c8             	movzbl %al,%ecx
423904:	f6 44 4a 01 80       	testb  $0x80,0x1(%edx,%ecx,2)
423909:	74 0f                	je     0x42391a
42390b:	6a 02                	push   $0x2
42390d:	88 45 08             	mov    %al,0x8(%ebp)
423910:	88 5d 09             	mov    %bl,0x9(%ebp)
423913:	c6 45 0a 00          	movb   $0x0,0xa(%ebp)
423917:	58                   	pop    %eax
423918:	eb 09                	jmp    0x423923
42391a:	88 5d 08             	mov    %bl,0x8(%ebp)
42391d:	c6 45 09 00          	movb   $0x0,0x9(%ebp)
423921:	8b c7                	mov    %edi,%eax
423923:	57                   	push   %edi
423924:	ff 76 04             	push   0x4(%esi)
423927:	8d 4d fc             	lea    -0x4(%ebp),%ecx
42392a:	6a 03                	push   $0x3
42392c:	51                   	push   %ecx
42392d:	50                   	push   %eax
42392e:	8d 45 08             	lea    0x8(%ebp),%eax
423931:	50                   	push   %eax
423932:	68 00 01 00 00       	push   $0x100
423937:	ff 76 14             	push   0x14(%esi)
42393a:	e8 18 f5 ff ff       	call   0x422e57
42393f:	83 c4 20             	add    $0x20,%esp
423942:	85 c0                	test   %eax,%eax
423944:	74 24                	je     0x42396a
423946:	3b c7                	cmp    %edi,%eax
423948:	75 06                	jne    0x423950
42394a:	0f b6 45 fc          	movzbl -0x4(%ebp),%eax
42394e:	eb 1c                	jmp    0x42396c
423950:	0f b6 4d fd          	movzbl -0x3(%ebp),%ecx
423954:	33 c0                	xor    %eax,%eax
423956:	8a 65 fc             	mov    -0x4(%ebp),%ah
423959:	0b c1                	or     %ecx,%eax
42395b:	eb 0f                	jmp    0x42396c
42395d:	83 fb 41             	cmp    $0x41,%ebx
423960:	7c 08                	jl     0x42396a
423962:	83 fb 5a             	cmp    $0x5a,%ebx
423965:	8d 43 20             	lea    0x20(%ebx),%eax
423968:	7e 02                	jle    0x42396c
42396a:	8b c3                	mov    %ebx,%eax
42396c:	5f                   	pop    %edi
42396d:	5e                   	pop    %esi
42396e:	5b                   	pop    %ebx
42396f:	c9                   	leave
423970:	c3                   	ret
423971:	e8 31 93 ff ff       	call   0x41cca7
423976:	8b 40 64             	mov    0x64(%eax),%eax
423979:	3b 05 fc 93 4a 00    	cmp    0x4a93fc,%eax
42397f:	74 05                	je     0x423986
423981:	e8 e3 cf ff ff       	call   0x420969
423986:	ff 74 24 04          	push   0x4(%esp)
42398a:	50                   	push   %eax
42398b:	e8 19 ff ff ff       	call   0x4238a9
423990:	59                   	pop    %ecx
423991:	59                   	pop    %ecx
423992:	c3                   	ret
423993:	8b 44 24 08          	mov    0x8(%esp),%eax
423997:	6a 20                	push   $0x20
423999:	59                   	pop    %ecx
42399a:	99                   	cltd
42399b:	f7 f9                	idiv   %ecx
42399d:	6a 1f                	push   $0x1f
42399f:	59                   	pop    %ecx
4239a0:	2b ca                	sub    %edx,%ecx
4239a2:	83 ca ff             	or     $0xffffffff,%edx
4239a5:	d3 e2                	shl    %cl,%edx
4239a7:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4239ab:	f7 d2                	not    %edx
4239ad:	85 14 81             	test   %edx,(%ecx,%eax,4)
4239b0:	74 09                	je     0x4239bb
4239b2:	33 c0                	xor    %eax,%eax
4239b4:	c3                   	ret
4239b5:	83 3c 81 00          	cmpl   $0x0,(%ecx,%eax,4)
4239b9:	75 f7                	jne    0x4239b2
4239bb:	40                   	inc    %eax
4239bc:	83 f8 03             	cmp    $0x3,%eax
4239bf:	7c f4                	jl     0x4239b5
4239c1:	33 c0                	xor    %eax,%eax
4239c3:	40                   	inc    %eax
4239c4:	c3                   	ret
4239c5:	8b 44 24 08          	mov    0x8(%esp),%eax
4239c9:	56                   	push   %esi
4239ca:	57                   	push   %edi
4239cb:	6a 20                	push   $0x20
4239cd:	59                   	pop    %ecx
4239ce:	99                   	cltd
4239cf:	f7 f9                	idiv   %ecx
4239d1:	8b 7c 24 0c          	mov    0xc(%esp),%edi
4239d5:	8b f0                	mov    %eax,%esi
4239d7:	8d 04 b7             	lea    (%edi,%esi,4),%eax
4239da:	50                   	push   %eax
4239db:	6a 1f                	push   $0x1f
4239dd:	59                   	pop    %ecx
4239de:	2b ca                	sub    %edx,%ecx
4239e0:	33 d2                	xor    %edx,%edx
4239e2:	42                   	inc    %edx
4239e3:	d3 e2                	shl    %cl,%edx
4239e5:	52                   	push   %edx
4239e6:	ff 30                	push   (%eax)
4239e8:	e8 be 43 00 00       	call   0x427dab
4239ed:	83 c4 0c             	add    $0xc,%esp
4239f0:	4e                   	dec    %esi
4239f1:	78 1c                	js     0x423a0f
4239f3:	8d 3c b7             	lea    (%edi,%esi,4),%edi
4239f6:	85 c0                	test   %eax,%eax
4239f8:	74 15                	je     0x423a0f
4239fa:	57                   	push   %edi
4239fb:	6a 01                	push   $0x1
4239fd:	ff 37                	push   (%edi)
4239ff:	e8 a7 43 00 00       	call   0x427dab
423a04:	83 c4 0c             	add    $0xc,%esp
423a07:	4e                   	dec    %esi
423a08:	83 ef 04             	sub    $0x4,%edi
423a0b:	85 f6                	test   %esi,%esi
423a0d:	7d e7                	jge    0x4239f6
423a0f:	5f                   	pop    %edi
423a10:	5e                   	pop    %esi
423a11:	c3                   	ret
423a12:	55                   	push   %ebp
423a13:	8b ec                	mov    %esp,%ebp
423a15:	51                   	push   %ecx
423a16:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
423a1a:	53                   	push   %ebx
423a1b:	56                   	push   %esi
423a1c:	57                   	push   %edi
423a1d:	8b 7d 0c             	mov    0xc(%ebp),%edi
423a20:	4f                   	dec    %edi
423a21:	6a 20                	push   $0x20
423a23:	8d 47 01             	lea    0x1(%edi),%eax
423a26:	59                   	pop    %ecx
423a27:	99                   	cltd
423a28:	f7 f9                	idiv   %ecx
423a2a:	6a 1f                	push   $0x1f
423a2c:	5e                   	pop    %esi
423a2d:	2b f2                	sub    %edx,%esi
423a2f:	33 d2                	xor    %edx,%edx
423a31:	42                   	inc    %edx
423a32:	8b ce                	mov    %esi,%ecx
423a34:	d3 e2                	shl    %cl,%edx
423a36:	8b d8                	mov    %eax,%ebx
423a38:	8b 45 08             	mov    0x8(%ebp),%eax
423a3b:	85 14 98             	test   %edx,(%eax,%ebx,4)
423a3e:	74 21                	je     0x423a61
423a40:	8d 4f 01             	lea    0x1(%edi),%ecx
423a43:	51                   	push   %ecx
423a44:	50                   	push   %eax
423a45:	e8 49 ff ff ff       	call   0x423993
423a4a:	85 c0                	test   %eax,%eax
423a4c:	59                   	pop    %ecx
423a4d:	59                   	pop    %ecx
423a4e:	75 0e                	jne    0x423a5e
423a50:	57                   	push   %edi
423a51:	ff 75 08             	push   0x8(%ebp)
423a54:	e8 6c ff ff ff       	call   0x4239c5
423a59:	59                   	pop    %ecx
423a5a:	59                   	pop    %ecx
423a5b:	89 45 fc             	mov    %eax,-0x4(%ebp)
423a5e:	8b 45 08             	mov    0x8(%ebp),%eax
423a61:	83 ca ff             	or     $0xffffffff,%edx
423a64:	8b ce                	mov    %esi,%ecx
423a66:	d3 e2                	shl    %cl,%edx
423a68:	6a 03                	push   $0x3
423a6a:	59                   	pop    %ecx
423a6b:	21 14 98             	and    %edx,(%eax,%ebx,4)
423a6e:	43                   	inc    %ebx
423a6f:	3b d9                	cmp    %ecx,%ebx
423a71:	7d 09                	jge    0x423a7c
423a73:	8d 3c 98             	lea    (%eax,%ebx,4),%edi
423a76:	2b cb                	sub    %ebx,%ecx
423a78:	33 c0                	xor    %eax,%eax
423a7a:	f3 ab                	rep stos %eax,%es:(%edi)
423a7c:	8b 45 fc             	mov    -0x4(%ebp),%eax
423a7f:	5f                   	pop    %edi
423a80:	5e                   	pop    %esi
423a81:	5b                   	pop    %ebx
423a82:	c9                   	leave
423a83:	c3                   	ret
423a84:	8b 44 24 08          	mov    0x8(%esp),%eax
423a88:	8b 4c 24 04          	mov    0x4(%esp),%ecx
423a8c:	6a 03                	push   $0x3
423a8e:	5a                   	pop    %edx
423a8f:	2b c8                	sub    %eax,%ecx
423a91:	56                   	push   %esi
423a92:	8b 30                	mov    (%eax),%esi
423a94:	89 34 01             	mov    %esi,(%ecx,%eax,1)
423a97:	83 c0 04             	add    $0x4,%eax
423a9a:	4a                   	dec    %edx
423a9b:	75 f5                	jne    0x423a92
423a9d:	5e                   	pop    %esi
423a9e:	c3                   	ret
423a9f:	57                   	push   %edi
423aa0:	8b 7c 24 08          	mov    0x8(%esp),%edi
423aa4:	33 c0                	xor    %eax,%eax
423aa6:	ab                   	stos   %eax,%es:(%edi)
423aa7:	ab                   	stos   %eax,%es:(%edi)
423aa8:	ab                   	stos   %eax,%es:(%edi)
423aa9:	5f                   	pop    %edi
423aaa:	c3                   	ret
423aab:	33 c0                	xor    %eax,%eax
423aad:	8b 4c 24 04          	mov    0x4(%esp),%ecx
423ab1:	83 3c 81 00          	cmpl   $0x0,(%ecx,%eax,4)
423ab5:	75 0a                	jne    0x423ac1
423ab7:	40                   	inc    %eax
423ab8:	83 f8 03             	cmp    $0x3,%eax
423abb:	7c f0                	jl     0x423aad
423abd:	33 c0                	xor    %eax,%eax
423abf:	40                   	inc    %eax
423ac0:	c3                   	ret
423ac1:	33 c0                	xor    %eax,%eax
423ac3:	c3                   	ret
423ac4:	55                   	push   %ebp
423ac5:	8b ec                	mov    %esp,%ebp
423ac7:	83 ec 0c             	sub    $0xc,%esp
423aca:	8b 45 0c             	mov    0xc(%ebp),%eax
423acd:	53                   	push   %ebx
423ace:	56                   	push   %esi
423acf:	57                   	push   %edi
423ad0:	6a 20                	push   $0x20
423ad2:	5e                   	pop    %esi
423ad3:	99                   	cltd
423ad4:	8b ce                	mov    %esi,%ecx
423ad6:	f7 f9                	idiv   %ecx
423ad8:	8b 5d 08             	mov    0x8(%ebp),%ebx
423adb:	83 cf ff             	or     $0xffffffff,%edi
423ade:	89 75 0c             	mov    %esi,0xc(%ebp)
423ae1:	8b ca                	mov    %edx,%ecx
423ae3:	d3 e7                	shl    %cl,%edi
423ae5:	89 45 f8             	mov    %eax,-0x8(%ebp)
423ae8:	33 c0                	xor    %eax,%eax
423aea:	29 55 0c             	sub    %edx,0xc(%ebp)
423aed:	f7 d7                	not    %edi
423aef:	89 45 fc             	mov    %eax,-0x4(%ebp)
423af2:	8b 34 83             	mov    (%ebx,%eax,4),%esi
423af5:	8b ce                	mov    %esi,%ecx
423af7:	23 cf                	and    %edi,%ecx
423af9:	89 4d f4             	mov    %ecx,-0xc(%ebp)
423afc:	8b ca                	mov    %edx,%ecx
423afe:	d3 ee                	shr    %cl,%esi
423b00:	8b 4d 0c             	mov    0xc(%ebp),%ecx
423b03:	0b 75 fc             	or     -0x4(%ebp),%esi
423b06:	89 34 83             	mov    %esi,(%ebx,%eax,4)
423b09:	8b 75 f4             	mov    -0xc(%ebp),%esi
423b0c:	d3 e6                	shl    %cl,%esi
423b0e:	40                   	inc    %eax
423b0f:	83 f8 03             	cmp    $0x3,%eax
423b12:	89 75 fc             	mov    %esi,-0x4(%ebp)
423b15:	7c db                	jl     0x423af2
423b17:	6a 02                	push   $0x2
423b19:	58                   	pop    %eax
423b1a:	8b c8                	mov    %eax,%ecx
423b1c:	2b 4d f8             	sub    -0x8(%ebp),%ecx
423b1f:	8d 0c 8b             	lea    (%ebx,%ecx,4),%ecx
423b22:	3b 45 f8             	cmp    -0x8(%ebp),%eax
423b25:	7c 07                	jl     0x423b2e
423b27:	8b 11                	mov    (%ecx),%edx
423b29:	89 14 83             	mov    %edx,(%ebx,%eax,4)
423b2c:	eb 04                	jmp    0x423b32
423b2e:	83 24 83 00          	andl   $0x0,(%ebx,%eax,4)
423b32:	48                   	dec    %eax
423b33:	83 e9 04             	sub    $0x4,%ecx
423b36:	85 c0                	test   %eax,%eax
423b38:	7d e8                	jge    0x423b22
423b3a:	5f                   	pop    %edi
423b3b:	5e                   	pop    %esi
423b3c:	5b                   	pop    %ebx
423b3d:	c9                   	leave
423b3e:	c3                   	ret
423b3f:	55                   	push   %ebp
423b40:	8b ec                	mov    %esp,%ebp
423b42:	83 ec 18             	sub    $0x18,%esp
423b45:	8b 45 08             	mov    0x8(%ebp),%eax
423b48:	0f b7 48 0a          	movzwl 0xa(%eax),%ecx
423b4c:	53                   	push   %ebx
423b4d:	56                   	push   %esi
423b4e:	8b 75 10             	mov    0x10(%ebp),%esi
423b51:	57                   	push   %edi
423b52:	8b f9                	mov    %ecx,%edi
423b54:	81 e1 00 80 00 00    	and    $0x8000,%ecx
423b5a:	89 4d 08             	mov    %ecx,0x8(%ebp)
423b5d:	8b 48 06             	mov    0x6(%eax),%ecx
423b60:	89 4d f4             	mov    %ecx,-0xc(%ebp)
423b63:	8b 48 02             	mov    0x2(%eax),%ecx
423b66:	0f b7 00             	movzwl (%eax),%eax
423b69:	c1 e0 10             	shl    $0x10,%eax
423b6c:	81 e7 ff 7f 00 00    	and    $0x7fff,%edi
423b72:	81 ef ff 3f 00 00    	sub    $0x3fff,%edi
423b78:	81 ff 01 c0 ff ff    	cmp    $0xffffc001,%edi
423b7e:	89 45 fc             	mov    %eax,-0x4(%ebp)
423b81:	8d 45 f4             	lea    -0xc(%ebp),%eax
423b84:	89 4d f8             	mov    %ecx,-0x8(%ebp)
423b87:	50                   	push   %eax
423b88:	75 1e                	jne    0x423ba8
423b8a:	33 db                	xor    %ebx,%ebx
423b8c:	e8 1a ff ff ff       	call   0x423aab
423b91:	85 c0                	test   %eax,%eax
423b93:	59                   	pop    %ecx
423b94:	0f 85 bd 00 00 00    	jne    0x423c57
423b9a:	8d 7d f4             	lea    -0xc(%ebp),%edi
423b9d:	ab                   	stos   %eax,%es:(%edi)
423b9e:	ab                   	stos   %eax,%es:(%edi)
423b9f:	ab                   	stos   %eax,%es:(%edi)
423ba0:	6a 02                	push   $0x2
423ba2:	58                   	pop    %eax
423ba3:	e9 b1 00 00 00       	jmp    0x423c59
423ba8:	8d 45 e8             	lea    -0x18(%ebp),%eax
423bab:	50                   	push   %eax
423bac:	e8 d3 fe ff ff       	call   0x423a84
423bb1:	ff 76 08             	push   0x8(%esi)
423bb4:	8d 45 f4             	lea    -0xc(%ebp),%eax
423bb7:	50                   	push   %eax
423bb8:	e8 55 fe ff ff       	call   0x423a12
423bbd:	83 c4 10             	add    $0x10,%esp
423bc0:	85 c0                	test   %eax,%eax
423bc2:	74 01                	je     0x423bc5
423bc4:	47                   	inc    %edi