4368b3:	84 d2                	test   %dl,%dl
4368b5:	74 06                	je     0x4368bd
4368b7:	0f be d2             	movsbl %dl,%edx
4368ba:	47                   	inc    %edi
4368bb:	eb 03                	jmp    0x4368c0
4368bd:	6a 30                	push   $0x30
4368bf:	5a                   	pop    %edx
4368c0:	88 10                	mov    %dl,(%eax)
4368c2:	40                   	inc    %eax
4368c3:	49                   	dec    %ecx
4368c4:	85 c9                	test   %ecx,%ecx
4368c6:	7f e9                	jg     0x4368b1
4368c8:	8b 55 14             	mov    0x14(%ebp),%edx
4368cb:	c6 00 00             	movb   $0x0,(%eax)
4368ce:	85 c9                	test   %ecx,%ecx
4368d0:	78 12                	js     0x4368e4
4368d2:	80 3f 35             	cmpb   $0x35,(%edi)
4368d5:	7c 0d                	jl     0x4368e4
4368d7:	eb 03                	jmp    0x4368dc
4368d9:	c6 00 30             	movb   $0x30,(%eax)
4368dc:	48                   	dec    %eax
4368dd:	80 38 39             	cmpb   $0x39,(%eax)
4368e0:	74 f7                	je     0x4368d9
4368e2:	fe 00                	incb   (%eax)
4368e4:	80 3e 31             	cmpb   $0x31,(%esi)
4368e7:	75 05                	jne    0x4368ee
4368e9:	ff 42 04             	incl   0x4(%edx)
4368ec:	eb 12                	jmp    0x436900
4368ee:	53                   	push   %ebx
4368ef:	e8 dc ae fe ff       	call   0x4217d0
4368f4:	40                   	inc    %eax
4368f5:	50                   	push   %eax
4368f6:	53                   	push   %ebx
4368f7:	56                   	push   %esi
4368f8:	e8 83 f6 fe ff       	call   0x425f80
4368fd:	83 c4 10             	add    $0x10,%esp
436900:	33 c0                	xor    %eax,%eax
436902:	5b                   	pop    %ebx
436903:	5f                   	pop    %edi
436904:	5e                   	pop    %esi
436905:	5d                   	pop    %ebp
436906:	c3                   	ret
436907:	55                   	push   %ebp
436908:	8b ec                	mov    %esp,%ebp
43690a:	83 ec 28             	sub    $0x28,%esp
43690d:	a1 c0 ad 4b 00       	mov    0x4badc0,%eax
436912:	33 c5                	xor    %ebp,%eax
436914:	89 45 fc             	mov    %eax,-0x4(%ebp)
436917:	53                   	push   %ebx
436918:	56                   	push   %esi
436919:	8b 75 0c             	mov    0xc(%ebp),%esi
43691c:	57                   	push   %edi
43691d:	ff 75 10             	push   0x10(%ebp)
436920:	8b 7d 08             	mov    0x8(%ebp),%edi
436923:	8d 4d d8             	lea    -0x28(%ebp),%ecx
436926:	e8 f4 a5 fe ff       	call   0x420f1f
43692b:	8d 45 d8             	lea    -0x28(%ebp),%eax
43692e:	50                   	push   %eax
43692f:	33 db                	xor    %ebx,%ebx
436931:	53                   	push   %ebx
436932:	53                   	push   %ebx
436933:	53                   	push   %ebx
436934:	53                   	push   %ebx
436935:	56                   	push   %esi
436936:	8d 45 e8             	lea    -0x18(%ebp),%eax
436939:	50                   	push   %eax
43693a:	8d 45 f0             	lea    -0x10(%ebp),%eax
43693d:	50                   	push   %eax
43693e:	e8 0a 09 00 00       	call   0x43724d
436943:	89 45 ec             	mov    %eax,-0x14(%ebp)
436946:	8d 45 f0             	lea    -0x10(%ebp),%eax
436949:	57                   	push   %edi
43694a:	50                   	push   %eax
43694b:	e8 bf d7 ff ff       	call   0x43410f
436950:	8b c8                	mov    %eax,%ecx
436952:	8b 45 ec             	mov    -0x14(%ebp),%eax
436955:	83 c4 28             	add    $0x28,%esp
436958:	a8 03                	test   $0x3,%al
43695a:	75 0e                	jne    0x43696a
43695c:	83 f9 01             	cmp    $0x1,%ecx
43695f:	74 11                	je     0x436972
436961:	83 f9 02             	cmp    $0x2,%ecx
436964:	75 0f                	jne    0x436975
436966:	6a 04                	push   $0x4
436968:	eb 0a                	jmp    0x436974
43696a:	a8 01                	test   $0x1,%al
43696c:	75 f8                	jne    0x436966
43696e:	a8 02                	test   $0x2,%al
436970:	74 03                	je     0x436975
436972:	6a 03                	push   $0x3
436974:	5b                   	pop    %ebx
436975:	80 7d e4 00          	cmpb   $0x0,-0x1c(%ebp)
436979:	74 07                	je     0x436982
43697b:	8b 4d e0             	mov    -0x20(%ebp),%ecx
43697e:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
436982:	8b 4d fc             	mov    -0x4(%ebp),%ecx
436985:	5f                   	pop    %edi
436986:	5e                   	pop    %esi
436987:	8b c3                	mov    %ebx,%eax
436989:	33 cd                	xor    %ebp,%ecx
43698b:	5b                   	pop    %ebx
43698c:	e8 7b 3d ff ff       	call   0x42a70c
436991:	c9                   	leave
436992:	c3                   	ret
436993:	55                   	push   %ebp
436994:	8b ec                	mov    %esp,%ebp
436996:	83 ec 28             	sub    $0x28,%esp
436999:	a1 c0 ad 4b 00       	mov    0x4badc0,%eax
43699e:	33 c5                	xor    %ebp,%eax
4369a0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4369a3:	53                   	push   %ebx
4369a4:	56                   	push   %esi
4369a5:	8b 75 0c             	mov    0xc(%ebp),%esi
4369a8:	57                   	push   %edi
4369a9:	ff 75 10             	push   0x10(%ebp)
4369ac:	8b 7d 08             	mov    0x8(%ebp),%edi
4369af:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4369b2:	e8 68 a5 fe ff       	call   0x420f1f
4369b7:	8d 45 d8             	lea    -0x28(%ebp),%eax
4369ba:	50                   	push   %eax
4369bb:	33 db                	xor    %ebx,%ebx
4369bd:	53                   	push   %ebx
4369be:	53                   	push   %ebx
4369bf:	53                   	push   %ebx
4369c0:	53                   	push   %ebx
4369c1:	56                   	push   %esi
4369c2:	8d 45 e8             	lea    -0x18(%ebp),%eax
4369c5:	50                   	push   %eax
4369c6:	8d 45 f0             	lea    -0x10(%ebp),%eax
4369c9:	50                   	push   %eax
4369ca:	e8 7e 08 00 00       	call   0x43724d
4369cf:	89 45 ec             	mov    %eax,-0x14(%ebp)
4369d2:	8d 45 f0             	lea    -0x10(%ebp),%eax
4369d5:	57                   	push   %edi
4369d6:	50                   	push   %eax
4369d7:	e8 a3 dc ff ff       	call   0x43467f
4369dc:	8b c8                	mov    %eax,%ecx
4369de:	8b 45 ec             	mov    -0x14(%ebp),%eax
4369e1:	83 c4 28             	add    $0x28,%esp
4369e4:	a8 03                	test   $0x3,%al
4369e6:	75 0e                	jne    0x4369f6
4369e8:	83 f9 01             	cmp    $0x1,%ecx
4369eb:	74 11                	je     0x4369fe
4369ed:	83 f9 02             	cmp    $0x2,%ecx
4369f0:	75 0f                	jne    0x436a01
4369f2:	6a 04                	push   $0x4
4369f4:	eb 0a                	jmp    0x436a00
4369f6:	a8 01                	test   $0x1,%al
4369f8:	75 f8                	jne    0x4369f2
4369fa:	a8 02                	test   $0x2,%al
4369fc:	74 03                	je     0x436a01
4369fe:	6a 03                	push   $0x3
436a00:	5b                   	pop    %ebx
436a01:	80 7d e4 00          	cmpb   $0x0,-0x1c(%ebp)
436a05:	74 07                	je     0x436a0e
436a07:	8b 4d e0             	mov    -0x20(%ebp),%ecx
436a0a:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
436a0e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
436a11:	5f                   	pop    %edi
436a12:	5e                   	pop    %esi
436a13:	8b c3                	mov    %ebx,%eax
436a15:	33 cd                	xor    %ebp,%ecx
436a17:	5b                   	pop    %ebx
436a18:	e8 ef 3c ff ff       	call   0x42a70c
436a1d:	c9                   	leave
436a1e:	c3                   	ret
436a1f:	55                   	push   %ebp
436a20:	8b ec                	mov    %esp,%ebp
436a22:	51                   	push   %ecx
436a23:	51                   	push   %ecx
436a24:	8b 45 0c             	mov    0xc(%ebp),%eax
436a27:	53                   	push   %ebx
436a28:	8b 50 04             	mov    0x4(%eax),%edx
436a2b:	56                   	push   %esi
436a2c:	57                   	push   %edi
436a2d:	0f b7 78 06          	movzwl 0x6(%eax),%edi
436a31:	8b 00                	mov    (%eax),%eax
436a33:	8b cf                	mov    %edi,%ecx
436a35:	c1 e9 04             	shr    $0x4,%ecx
436a38:	81 e1 ff 07 00 00    	and    $0x7ff,%ecx
436a3e:	81 e7 00 80 00 00    	and    $0x8000,%edi
436a44:	8b f1                	mov    %ecx,%esi
436a46:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
436a4c:	bb 00 00 00 80       	mov    $0x80000000,%ebx
436a51:	89 7d f8             	mov    %edi,-0x8(%ebp)
436a54:	89 45 fc             	mov    %eax,-0x4(%ebp)
436a57:	85 f6                	test   %esi,%esi
436a59:	74 17                	je     0x436a72
436a5b:	81 fe ff 07 00 00    	cmp    $0x7ff,%esi
436a61:	74 08                	je     0x436a6b
436a63:	8d 81 00 3c 00 00    	lea    0x3c00(%ecx),%eax
436a69:	eb 25                	jmp    0x436a90
436a6b:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
436a70:	eb 21                	jmp    0x436a93
436a72:	85 d2                	test   %edx,%edx
436a74:	75 12                	jne    0x436a88
436a76:	85 c0                	test   %eax,%eax
436a78:	75 0e                	jne    0x436a88
436a7a:	8b 45 08             	mov    0x8(%ebp),%eax
436a7d:	21 50 04             	and    %edx,0x4(%eax)
436a80:	21 10                	and    %edx,(%eax)
436a82:	66 89 78 08          	mov    %di,0x8(%eax)
436a86:	eb 58                	jmp    0x436ae0
436a88:	8d 81 01 3c 00 00    	lea    0x3c01(%ecx),%eax
436a8e:	33 db                	xor    %ebx,%ebx
436a90:	0f b7 c0             	movzwl %ax,%eax
436a93:	8b 4d fc             	mov    -0x4(%ebp),%ecx
436a96:	8b f1                	mov    %ecx,%esi
436a98:	c1 ee 15             	shr    $0x15,%esi
436a9b:	c1 e2 0b             	shl    $0xb,%edx
436a9e:	0b f2                	or     %edx,%esi
436aa0:	0b f3                	or     %ebx,%esi
436aa2:	8b 5d 08             	mov    0x8(%ebp),%ebx
436aa5:	c1 e1 0b             	shl    $0xb,%ecx
436aa8:	89 45 0c             	mov    %eax,0xc(%ebp)
436aab:	89 73 04             	mov    %esi,0x4(%ebx)
436aae:	89 0b                	mov    %ecx,(%ebx)
436ab0:	85 f6                	test   %esi,%esi
436ab2:	78 26                	js     0x436ada
436ab4:	8b f8                	mov    %eax,%edi
436ab6:	8b 13                	mov    (%ebx),%edx
436ab8:	8b ca                	mov    %edx,%ecx
436aba:	c1 e9 1f             	shr    $0x1f,%ecx
436abd:	03 f6                	add    %esi,%esi
436abf:	8d 04 12             	lea    (%edx,%edx,1),%eax
436ac2:	81 c7 ff ff 00 00    	add    $0xffff,%edi
436ac8:	0b f1                	or     %ecx,%esi
436aca:	89 03                	mov    %eax,(%ebx)
436acc:	79 e8                	jns    0x436ab6
436ace:	89 7d 0c             	mov    %edi,0xc(%ebp)
436ad1:	8b 7d f8             	mov    -0x8(%ebp),%edi
436ad4:	8b 45 0c             	mov    0xc(%ebp),%eax
436ad7:	89 73 04             	mov    %esi,0x4(%ebx)
436ada:	0b f8                	or     %eax,%edi
436adc:	66 89 7b 08          	mov    %di,0x8(%ebx)
436ae0:	5f                   	pop    %edi
436ae1:	5e                   	pop    %esi
436ae2:	5b                   	pop    %ebx
436ae3:	c9                   	leave
436ae4:	c3                   	ret
436ae5:	55                   	push   %ebp
436ae6:	8b ec                	mov    %esp,%ebp
436ae8:	83 ec 30             	sub    $0x30,%esp
436aeb:	a1 c0 ad 4b 00       	mov    0x4badc0,%eax
436af0:	33 c5                	xor    %ebp,%eax
436af2:	89 45 fc             	mov    %eax,-0x4(%ebp)
436af5:	8b 45 14             	mov    0x14(%ebp),%eax
436af8:	53                   	push   %ebx
436af9:	8b 5d 10             	mov    0x10(%ebp),%ebx
436afc:	56                   	push   %esi
436afd:	89 45 dc             	mov    %eax,-0x24(%ebp)
436b00:	57                   	push   %edi
436b01:	8d 45 08             	lea    0x8(%ebp),%eax
436b04:	50                   	push   %eax
436b05:	8d 45 d0             	lea    -0x30(%ebp),%eax
436b08:	50                   	push   %eax
436b09:	e8 11 ff ff ff       	call   0x436a1f
436b0e:	59                   	pop    %ecx
436b0f:	59                   	pop    %ecx
436b10:	8d 45 e0             	lea    -0x20(%ebp),%eax
436b13:	50                   	push   %eax
436b14:	6a 00                	push   $0x0
436b16:	6a 11                	push   $0x11
436b18:	83 ec 0c             	sub    $0xc,%esp
436b1b:	8d 75 d0             	lea    -0x30(%ebp),%esi
436b1e:	8b fc                	mov    %esp,%edi
436b20:	a5                   	movsl  %ds:(%esi),%es:(%edi)
436b21:	a5                   	movsl  %ds:(%esi),%es:(%edi)
436b22:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
436b24:	e8 a0 0e 00 00       	call   0x4379c9
436b29:	8b 75 dc             	mov    -0x24(%ebp),%esi
436b2c:	89 43 08             	mov    %eax,0x8(%ebx)
436b2f:	0f be 45 e2          	movsbl -0x1e(%ebp),%eax
436b33:	89 03                	mov    %eax,(%ebx)
436b35:	0f bf 45 e0          	movswl -0x20(%ebp),%eax
436b39:	89 43 04             	mov    %eax,0x4(%ebx)
436b3c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
436b3f:	50                   	push   %eax
436b40:	ff 75 18             	push   0x18(%ebp)
436b43:	56                   	push   %esi
436b44:	e8 c9 b9 ff ff       	call   0x432512
436b49:	83 c4 24             	add    $0x24,%esp
436b4c:	85 c0                	test   %eax,%eax
436b4e:	75 14                	jne    0x436b64
436b50:	8b 4d fc             	mov    -0x4(%ebp),%ecx
436b53:	5f                   	pop    %edi
436b54:	89 73 0c             	mov    %esi,0xc(%ebx)
436b57:	5e                   	pop    %esi
436b58:	8b c3                	mov    %ebx,%eax
436b5a:	33 cd                	xor    %ebp,%ecx
436b5c:	5b                   	pop    %ebx
436b5d:	e8 aa 3b ff ff       	call   0x42a70c
436b62:	c9                   	leave
436b63:	c3                   	ret
436b64:	33 c0                	xor    %eax,%eax
436b66:	50                   	push   %eax
436b67:	50                   	push   %eax
436b68:	50                   	push   %eax
436b69:	50                   	push   %eax
436b6a:	50                   	push   %eax
436b6b:	e8 b0 02 ff ff       	call   0x426e20
436b70:	cc                   	int3
436b71:	cc                   	int3
436b72:	cc                   	int3
436b73:	cc                   	int3
436b74:	cc                   	int3
436b75:	cc                   	int3
436b76:	cc                   	int3
436b77:	cc                   	int3
436b78:	cc                   	int3
436b79:	cc                   	int3
436b7a:	cc                   	int3
436b7b:	cc                   	int3
436b7c:	cc                   	int3
436b7d:	cc                   	int3
436b7e:	cc                   	int3
436b7f:	cc                   	int3
436b80:	57                   	push   %edi
436b81:	56                   	push   %esi
436b82:	55                   	push   %ebp
436b83:	33 ff                	xor    %edi,%edi
436b85:	33 ed                	xor    %ebp,%ebp
436b87:	8b 44 24 14          	mov    0x14(%esp),%eax
436b8b:	0b c0                	or     %eax,%eax
436b8d:	7d 15                	jge    0x436ba4
436b8f:	47                   	inc    %edi
436b90:	45                   	inc    %ebp
436b91:	8b 54 24 10          	mov    0x10(%esp),%edx
436b95:	f7 d8                	neg    %eax
436b97:	f7 da                	neg    %edx
436b99:	83 d8 00             	sbb    $0x0,%eax
436b9c:	89 44 24 14          	mov    %eax,0x14(%esp)
436ba0:	89 54 24 10          	mov    %edx,0x10(%esp)
436ba4:	8b 44 24 1c          	mov    0x1c(%esp),%eax
436ba8:	0b c0                	or     %eax,%eax
436baa:	7d 14                	jge    0x436bc0
436bac:	47                   	inc    %edi
436bad:	8b 54 24 18          	mov    0x18(%esp),%edx
436bb1:	f7 d8                	neg    %eax
436bb3:	f7 da                	neg    %edx
436bb5:	83 d8 00             	sbb    $0x0,%eax
436bb8:	89 44 24 1c          	mov    %eax,0x1c(%esp)
436bbc:	89 54 24 18          	mov    %edx,0x18(%esp)
436bc0:	0b c0                	or     %eax,%eax
436bc2:	75 28                	jne    0x436bec
436bc4:	8b 4c 24 18          	mov    0x18(%esp),%ecx
436bc8:	8b 44 24 14          	mov    0x14(%esp),%eax
436bcc:	33 d2                	xor    %edx,%edx
436bce:	f7 f1                	div    %ecx
436bd0:	8b d8                	mov    %eax,%ebx